after_update回调中的expire_fragment

时间:2015-02-23 15:37:34

标签: ruby-on-rails caching ruby-on-rails-4

我使用以下片段缓存:

应用/视图/人/ index.html.erb

<% cache do %>
  <p>foobar</p>
<% end %>

该缓存存储在views/localhost:3000/people/936e34304c10cd4b7469d805b7070ac4

我想在after_update模型中使用Person回调使该缓存失效,但无法使其正常工作。

应用/模型/ person.rb

class Person < ActiveRecord::Base
  after_update :sweep_cache

  private
  def sweep_cache
    ActionController::Base.new.expire_fragment(controller: 'people',
                                               action: 'index')
  end
end

此代码导致此错误:

Screenshot of the RuntimeError

向方法添加include Rails.application.routes.url_helpers没有帮助。 sweep_cache方法的正确代码是什么?

0 个答案:

没有答案