0

首先这是我的第一个问题,所以希望我能提供所有必要的信息。

我正在使用带有 Mongoid gem 的 Rails 4、Ruby 2.0 和 MongoDB。

我正在创建一个用于各种类的模块。我尝试了以下方法,但它似乎不起作用,我找不到任何关于如何正确设置它的信息,使用模块中的关系并分配一个类名:

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

谢谢!

4

1 回答 1

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 类将与版本和来源相关联。也许您正在包括核心模块而不是版本控制?

于 2013-08-13T16:33:48.757 回答