【发布时间】: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