2
我正尝试创建一个包含与Mongoid的多态关系的模块。简单的例子:ActiveSupport中的Mongoid关系::关注模块
module Scalable
extend ActiveSupport::Concern
included do
references_many :scales, :as => :scalable
before_save :add_scale
end
module InstanceMethods
def add_scale
self.scales.create
end
end
end
class Scale
include Mongoid::Document
referenced_in :scalable, :index => true
end
class ScalableModel
include Mongoid::Document
include Scalable
end
然而,当我试图像ScalableModel.create
运行的东西,我得到以下错误:
NoMethodError Exception: undefined method `relations' for Scalable:Module
这是不可能的,还是我做错了什么?
非常感谢Steve,这很好地工作。通过添加':autosave => true'并将'self.scales.create'更改为'self.scales.build'在回调中,我实际上能够保留回调。 – geetarista