【问题标题】:mongoid-history: undefined local variable or method `metadata' formongoid-history:未定义的局部变量或方法“元数据”
【发布时间】:2014-11-11 15:50:05
【问题描述】:

我正在使用 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 播种数据库时,它会给出 error。我无法处理它。正确安装它的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails-4 mongoid mongoid4


    【解决方案1】:

    我遇到了同样的问题,必须查看源代码才能解决。由于您使用的是 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 中看到更改

    【讨论】:

    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 2018-04-19
    • 2015-01-01
    • 2013-12-17
    • 2016-04-29
    相关资源
    最近更新 更多