使用 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)
这奏效了。
此方法在视图中可用。它可以从控制器获得。我真的不明白为什么它在助手中不可用。我在这里想念什么?为什么它在帮助程序中不可用,公开它的最佳方法是什么?谢谢