【发布时间】:2011-02-18 11:28:22
【问题描述】:
我有一个返回 json 输出的控制器索引操作。
render :json => my_array.to_json
我必须在这里使用什么类型的缓存。 “页面缓存”对此有意义吗?
或者我必须像下面那样做动作缓存
caches_action :index
【问题讨论】:
标签: ruby-on-rails json caching page-caching action-caching
我有一个返回 json 输出的控制器索引操作。
render :json => my_array.to_json
我必须在这里使用什么类型的缓存。 “页面缓存”对此有意义吗?
或者我必须像下面那样做动作缓存
caches_action :index
【问题讨论】:
标签: ruby-on-rails json caching page-caching action-caching
动作缓存或页面缓存都可以正常工作;页面缓存的好处是永远不会调用 Rails 堆栈,但这取决于您是否需要控制谁访问该 Json 提要。
如果您可以摆脱它,我非常喜欢使用页面缓存 - 可以节省大量系统资源。 :)
编辑:页面缓存示例,以防有任何混淆:
class SomeController < ApplicationController
caches_page :index
def index
render :json => my_array.to_json
end
end
除非我误解了什么,否则你只需要这样做。
【讨论】:
同样的注意事项应该适用于 JSON 作为任何其他输出。如果您需要验证用户对数据的访问权限,那么动作缓存是可行的方法,否则页面缓存应该没问题。
如果数据因应用程序中的逻辑而发生变化,那么这两种形式的缓存都有问题,最好使用其他方式。
【讨论】: