如何做rails3条件缓存

时间:2012-10-02 17:47:43

标签: ruby-on-rails ruby-on-rails-3 caching conditional-statements

我有一个带有文章模型的Rails3应用程序。

当管理员登录时,他们只需转到文章/ show方法即可查看“未授权”的文章:

if !@article.is_authorized and !user_signed_in?
  raise ActionController::RoutingError.new('Not Found')
end

我想从授权的那一刻起缓存文章。如何在管理员审核它们时阻止它们被缓存?

如何在动作中放置如下代码?

if @article.is_authorized
  cache_action
  or cache_fragment
  or whatever

1 个答案:

答案 0 :(得分:0)

As stated in the doc,你可以通过Proc:

caches_action :foo, if: lambda { your_condition_here }