我有一个控制器索引操作,它返回json输出。
render :json => my_array.to_json
我必须在这里使用什么类型的缓存。 “页面缓存”是否有意义。
或者我必须像下面那样进行动作缓存
caches_action :index
答案 0 :(得分:3)
操作缓存或页面缓存都可以正常工作;页面缓存具有从不调用Rails堆栈的好处,但这取决于您是否需要控制谁访问该Json订阅源。
如果您能够使用页面缓存,我非常喜欢使用页面缓存 - 系统资源可以节省很多。 :)
编辑:页面缓存示例,如果有任何混淆:
class SomeController < ApplicationController
caches_page :index
def index
render :json => my_array.to_json
end
end
除非我误解了某些内容,否则应该只需要这样做。
答案 1 :(得分:2)
相同的注意事项应该适用于任何其他输出的JSON。如果您需要验证对用户的数据访问权限,那么就可以采取行动缓存,否则页面缓存应该没问题。
如果数据由于您的应用中的逻辑而发生变化,则两种形式的缓存都会出现问题,您最好使用其他方式。