2

我正在使用 rails 4,mongoid 4。我想用 mongoid-history gem 对我的模型进行版本化。这是我的 historyTracker 文件:

class HistoryTracker
  include Mongoid::History::Tracker
end

这是初始化程序:

Mongoid::History.tracker_class_name = :history_tracker

这是我的用户模型。

class User
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Paranoia
  include Mongoid::Token
  include SimpleEnum::Mongoid
  include ActiveModel::Validations
  include Mongoid::History::Trackable

  field :email
  field :username


  track_history   :on => [:username, :email], 
                  :modifier_field => :modifier, 
                  :modifier_field_inverse_of => :nil, 
                  :version_field => :version,   
                  :track_create   =>  false,   
                  :track_update   =>  true,     
                  :track_destroy  =>  false 

当我要用 rake 播种数据库时,它会出错。我无法处理它。正确安装它的最佳方法是什么?

4

1 回答 1

2

我有同样的问题,必须查看源代码才能解决。由于您使用的是 mongoid 4,因此源 gem 文件中有一个名为 isMongoid3 的方法?我们必须在本地初始化文件中禁用该方法。为此,请转到您的 mongoid-history.rb (在初始化程序中)并添加以下内容:

module Mongoid
  module History
    def self.mongoid3?
      false
    end
  end
end

Mongoid::History.tracker_class_name = :history_tracker

现在,当您转到 rails 控制台并进行更改时,您可以在 history_tracks 中看到更改

于 2014-11-17T23:35:03.817 回答