我需要观察远程数据库表。我正在查看以下代码:
class RemotetableObserver < ActiveRecord::Observer
# Need to watch the remote table
ActiveRecord::Base.establish_connection "remoteDB"
observe :remotetable
def after_create(row)
doStuff.create(row)
end
end
我添加了
config.active_record.observers = :remotetable_observer
到我的application.rb配置文件,我的database.yml连接到远程数据库。
我得到NameError: uninitialized constant remotetable
所以我创建了另一个模型:
# remotetable.rb
class Remotetable < ActiveRecord::Base
# establish_connection(ActiveRecord::Base.configurations["otherdb_#{RAILS_ENV}"])
ActiveRecord::Base.establish_connection "remoteDB"
self.table_name = "remotetable"
end
但仍然遇到同样的错误:NameError: uninitialized constant remotetable
有什么想法吗?
答案 0 :(得分:2)
我需要观察远程数据库表。
ActiveRecord观察者不观察表,他们观察对象。因此,当您更新用户时,它可以观察到用户正在更新并将其自身注入用户生命周期。
如果您对无法控制的外国交易采取行动,则需要使用触发器或pub / sub(如果可用)挂钩到该数据库中。