我无法删除我在 rails 插件中引入的一些重复项。
下面的代码以相同的方式修改了 ActiveRecord 的 find 和 calculate 方法,但我一直无法删除重复项。
下面的 find 和 calculate 方法使用了 super 关键字,这是一个障碍,因为 super 关键字只能用于调用与调用方法同名的方法,所以我不能将 super 关键字移动到共享的方法通过查找和计算。
所以接下来我尝试对超类 ActiveRecord 中的 find 和 calculate 类方法进行别名处理,但是,我无法获得别名的正确语法。如果有人可以告诉我,那将是一个很大的帮助。
如果您有更好的方法来完全做到这一点,我也希望您也发布它。
下面我对代码进行了一些精简以突出问题:
module Geocodable #:nodoc:
def self.included(mod)
mod.extend(ClassMethods)
end
module ClassMethods
def acts_as_geocodable(options = {})
extend Geocodable::SingletonMethods
end
end
module SingletonMethods
def find(*args)
some_method_1
super *args.push(options)
some_method_2
end
# TODO: Remove duplication of find above and calculate below.
def calculate(*args)
some_method_1
super *args.push(options)
some_method_2
end
end
end