我有一个简单的rails应用程序,里面有活动记录模型和回调。
class Place < ApplicationRecord
after_update :update_markers
private
def update_markers
…
end
end
我也有分开的脚本,可通过'active_record'
访问我的bd require 'active_record'
ActiveRecord::Base.establish_connection({
adapter: 'postgresql',
encoding: 'unicode',
username: 'postgres',
host: 'localhost',
database: 'myapp_development'
})
class Place < ActiveRecord::Base
self.table_name = “places”
end
Place.last.update(name: ‘My name’)
当我尝试更新此脚本中的值时,回调不会调用。我怎么能调用它?
答案 0 :(得分:0)
请务必在脚本require [root]/app/models/place.rb
中加载模型。现在看起来你似乎没有扩展你的模型,只是定义它,所以那里不会有回调。 Rails自动加载模型,但你的脚本不知道它。
如果您的脚本与Rails应用程序完全分开,那么您没有其他选择,只需复制模型回调即可。在你的脚本中:
class Place < ActiveRecord::Base
self.table_name = “places”
after_update :update_markers
private
def update_markers
…
end
end