0

使用 Rails 3.2

我正在尝试expire_fragment从帮助程序调用 Rails 视图方法,但出现错误:

undefined method `expire_fragment' for #<#<Class:0x00000118977110>:0x00000103b853b8>

我正在尝试有条件地清除缓存。这是我认为的辅助方法调用

clear_cache_keys_if(params[:cc], [@product, :search_filters])

而在帮手

  def clear_cache_keys_if(condition, keys = [])
    if condition
      keys.each do |key|
        expire_fragment(key)
      end
    end
  end

我原以为 Rails 片段缓存方法可以在辅助模块中访问,但似乎并非如此。

我把它改成

controller.expire_fragment(key) 

这奏效了。

此方法在视图中可用。它可以从控制器获得。我真的不明白为什么它在助手中不可用。我在这里想念什么?为什么它在帮助程序中不可用,公开它的最佳方法是什么?谢谢

4

0 回答 0