我有一个 Rails 引擎,它没有自己的模型;只是向主应用程序添加功能的 Controller 、 View 和观察者。
我正在尝试创建一个观察者,但无法让 Rails 注意到它的存在——观察者中的 after_create 操作和调试语句将被忽略,并且将语法错误插入到文件中不会在启动或插入时引发错误观察表中的一行。
我已经尝试了提到的所有技术 here没有效果。
#/engines/loansengine/lib/loansengine/engine.rb
module Loansengine
class Engine < ::Rails::Engine
isolate_namespace Loansengine
# OBSERVERS
config.active_record.observers = ['Loansengine::TourObserver']
end
end
观察者:
#/engines/loansengine/observers/loansengine/tour_observer.rb
class Loansengine::TourObserver < ActiveRecord::Observer
observe :tours
def after_create(tour)
test_observer(tour)
end
private
def test_observer(tour)
tour.agent_comments = 'pink'
tour.save
end
end
最佳答案
我想我已经弄清楚了:
module Loansengine
class Engine < ::Rails::Engine
isolate_namespace Loansengine
config.before_initialize do
config.active_record.observers << 'Loansengine::TourObserver'
end
end
end
关于ruby-on-rails-4 - 从 Rails 引擎观察器中观察主要应用程序模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20228417/