从辅助模块调用控制器方法

时间:2016-07-21 18:57:35

标签: ruby-on-rails ruby-on-rails-3 fragment-caching

使用Rails 3.2

我正在尝试从帮助程序调用{​​{1}}(Rails视图方法),但收到错误:

expire_fragment

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

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

在帮助者中

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

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

我把它改成了

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

这很有效。

此方法在视图中可用。它可以从控制器获得。我真的不明白为什么它不能在帮助器中使用。我在这里错过了什么?为什么帮助器中没有它,暴露它的最佳方式是什么?感谢

0 个答案:

没有答案
相关问题