我有一系列不同的模型,每个模型与Properties模型共享多态关联。我正在尝试编写一个mixin来干掉代码,但它们没有用,请你能提供一些调试帮助。我的mixin看起来像这样......
module ModelWithProperties
def self.included?(base)
base.class_eval do
has_many :properties, :as=>:parent
end
end
def examplesharedfunction
/// stuff here
end
end
然后我的模特看起来像这样......
class Myobjects < ActiveRecord::Base
include ModelWithProperties
end
但是,当我运行所有这些时,关联似乎已经采取了('undefined方法'特性'#can访问examplesharedfunction。
任何线索/提示?
答案 0 :(得分:4)
包含模块时调用的钩子是self.included
而非self.included?
您也可以使用ActiveSupport::Concern
module M
extend ActiveSupport::Concern
included do
has_many :properties, :as=>:parent
end
end