gpt4 book ai didi

ruby-on-rails - 来自模型的 expire_action

转载 作者:行者123 更新时间:2023-12-04 06:04:04 28 4
gpt4 key购买 nike

我有一个更新我的模型的离线 rake 工作。发生这种情况时,我想使该模型的 :show 操作过期。

# in lib/models/my_model.rb
after_update :expire_cache
def expire_cache
expire_action :controller => :my_models, :action => :show, :id => self
end

这不起作用,因为 expire_action 在模型中不可用。调用 ActionController.new.expire_action 给了我很多奇怪的路由问题,这是合理的,因为没有连接任何路由逻辑。

我认为 expire_action 的常用方法是使用清扫器,但这不起作用,因为我的模型不是通过 Controller 操作更新的。

注意:我觉得我可能以错误的方式使用缓存,因为我无法在任何地方找到答案。

最佳答案

您正在寻找 ActionController Sweeper .您可以找到有关如何实现它们的官方 Rails 文档 here ,但可能你想要这样的东西:

class MyModelSweeper < ActionController::Caching::Sweeper
observe MyModel

def after_update(my_model)
expire_action :controller => :my_models, :action => :show, :id => my_model
end

end

关于ruby-on-rails - 来自模型的 expire_action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9485801/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com