如何缓存渲染:json

时间:2010-05-12 06:39:17

标签: ruby-on-rails json caching page-caching action-caching

我有一个控制器索引操作,它返回json输出。

render :json => my_array.to_json

我必须在这里使用什么类型的缓存。 “页面缓存”是否有意义。

或者我必须像下面那样进行动作缓存

caches_action :index

2 个答案:

答案 0 :(得分:3)

操作缓存或页面缓存都可以正常工作;页面缓存具有从不调用Rails堆栈的好处,但这取决于您是否需要控制谁访问该Json订阅源。

如果您能够使用页面缓存,我非常喜欢使用页面缓存 - 系统资源可以节省很多。 :)


编辑:页面缓存示例,如果有任何混淆:

class SomeController < ApplicationController
  caches_page :index
  def index
    render :json => my_array.to_json
  end
end

除非我误解了某些内容,否则应该只需要这样做。

答案 1 :(得分:2)

相同的注意事项应该适用于任何其他输出的JSON。如果您需要验证对用户的数据访问权限,那么就可以采取行动缓存,否则页面缓存应该没问题。

如果数据由于您的应用中的逻辑而发生变化,则两种形式的缓存都会出现问题,您最好使用其他方式。