ruby-on-rails-4 - 从 Rails 引擎观察器中观察主要应用程序模型

标签 ruby-on-rails-4 observers

我有一个 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/

相关文章:

php - Magento 1.9.2.1 - 观察者 : catalog_product_save_before doesn't fire

mysql - 列数据太长 - Rails 4 迁移已取消

html - 应用程序布局中的嵌套布局

ruby-on-rails-4 - 名称错误 : uninitialized constant with FriendlyId after migration to Rails4

R Shiny : Observe only works once

swift - 如何使用 Swift 从 Firebase DB 引用路径中删除观察者?

ruby-on-rails - Rails 4.1 计数器缓存不更新

mysql - 无法让这个连接在 Rails 中工作

ios - FirebaseDatabase - removeAllObservers() - 它实际上删除了什么?

ios - 在枚举之前使用 '\' 的观察者实现