【发布时间】:2020-06-02 08:57:37
【问题描述】:
模型Item 有一个after_commit 回调调用say updated_related
class Item < ActiveRecord::Base
after_commit :updated_related
def updated_related
# update related items based on latest item
end
end
另外,一个名为ItemObserver 的观察者有一个名为clear_item_cache 的after_commit
class ItemObserver < ActiveRecord::Observer
def after_commit
#clear item from cache
end
end
现在的问题是 update_related 在调用观察者之前首先被调用,因此相关项目在陈旧的 item 条目上被调用。
我如何确保首先调用观察者的回调,因为它是 item 的一部分,之后我想运行相关项目以运行?
附:从观察者回调中删除代码或完全删除回调现在不是一种选择。
我在 Rails 4 上并使用 rails-observable 宝石作为 Observable。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 callback