我在控制器中有如下方法:
class PagesController < ApplicationController
caches_action :listing
def listing
#..........#
end
end
我可以通过继承应用控制器来从另一个控制器访问@page
变量:
class ApplicationController
before_action :get_page
def get_page
@page = #page
end
end
我很难弄清楚该怎么办
caches_action
仅if @page?
在页面控制器
答案 0 :(得分:2)
您可以这样写
caches_action :listing, if: -> { @page.present? }
或
caches_action :listing, unless: -> { @page.blank? }
答案 1 :(得分:0)
caches_action :index, :if => proc do
!request.format.json? # cache if is not a JSON request
end
caches_action :show, :cache_path => { :project => 1 },
:expires_in => 1.hour
caches_action :feed, :cache_path => proc do
if params[:user_id]
user_list_url(params[:user_id, params[:id])
else
list_url(params[:id])
end
end
或已经建议的一种简单方法
caches_action:listing,如果:-> {@ page.present? }
根据要求使用它。