首先,这是我的第一个问题,希望我能提供所有必要的信息。
我正在使用Rails 4,Ruby 2.0和MongoDB以及Mongoid gem。
我正在创建一个可用于各种类的模块。我尝试了以下但它似乎不起作用,我找不到任何关于如何正确设置它的信息,使用模块中的关系并分配class_name:
module Core
module Versioning
extend ActiveSupport::Concern
included do
# *allows for tracking of various versions related to a root*
has_many :versions, class_name: self.class.name, inverse_of: :origin
belongs_to :origin, class_name: self.class.name, inverse_of: :versions
end
谢谢!
答案 0 :(得分:0)
因此,使用ActiveSupport :: Concern的典型模块将是
require 'active_support/concern'
module M
extend ActiveSupport::Concern
included do
has_many :versions, class_name: self.class.name, inverse_of: :origin
belongs_to :origin, class_name: self.class.name, inverse_of: :versions
end
module ClassMethods
...
end
end
你就像这样使用它
class A < ActiveRecord::Base
include M
end
然后,A类将与版本和原点相关联。也许你包括核心模块而不是版本控制?