在Rails中,我想同时将功能应用于许多模型,并且能够在将来将其添加到其他模型中。
我正在寻找类似......
的东西class Stuff < ActiveRecord::Base
some_tag
end
class Thing < ActiveRecord::Base
some_tag
end
给那些和任何其他模型
some_tag
的功能
class Functionality
has_many :other_things, polymorphic: true
def does_something
end
end
答案 0 :(得分:1)
第一步:使用您要添加到类中的方法创建一个模块:
module FooFunction
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def does_something(options = {})
...
end
end
end
下一步:将该模块纳入课程
# in config/initializers/foo_function.rb
class Object
include FooFunction
end