【问题标题】:how to handle observers in rails 4.0.0?如何处理 rails 4.0.0 中的观察者?
【发布时间】:2016-08-13 07:59:44
【问题描述】:

在我的 application.rb 中,我有这个代码 sn-p:

  _observers  = Dir["#{config.root}/app/models/observers/*"].map{ |path| "observers/#{Pathname.new(path).basename.to_s.split(".").first}" }
config.mongoid.observers =  _observers

我将 rails 版本从 3.2.22 更新到 4.0.0,

现在我收到此错误:

undefined method `observers=' for Mongoid::Config:Module (NoMethodError)

如何处理?

【问题讨论】:

  • 您是否真的在您的应用程序中使用任何观察者?如果没有,您可以删除该行。观察者在短时间内大肆宣传但结果并不是一个好主意,并且在 Rails 4 中被删除。否则,您将不得不找到观察者提供的任何服务的替代方案或使用 gem为 Rails 3 风格的观察者提供钩子。
  • @max ..如果我删除这一行,我收到此错误 application.rb:47:in block in <class:Application>': undefined method
  • @max 在第 47 行我有这个代码 sn-p: Dir["#{config.root}/config/routes/*"].each do |route_file| config.paths['config/routes']
  • 这与观察者完全无关,它是一种从/config/routes 中的一堆文件中加载路由的黑客方式。它在 Rails 4 中不起作用。我建议您将路由合并到一个文件中。 stackoverflow.com/questions/18844813/…
  • 这是您接管并尝试更新的旧版应用程序吗?

标签: ruby-on-rails ruby mongoid observers


【解决方案1】:

在您的Gemfile 中添加以下内容:

gem 'rails-observers'
gem 'mongoid-observers'

【讨论】:

    猜你喜欢
    • 2020-05-22
    • 1970-01-01
    • 2011-07-02
    • 2013-07-22
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多