10

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

render :json => my_array.to_json

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

还是我必须像下面那样做动作缓存

caches_action :index
4

2 回答 2

4

动作缓存或页面缓存都可以正常工作;页面缓存的好处是永远不会调用 Rails 堆栈,但这取决于您是否需要控制谁访问该 Json 提要。

如果您可以摆脱它,我非常喜欢使用页面缓存 - 可以节省大量系统资源。:)


编辑:页面缓存示例,以防有任何混淆:

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

除非我误解了什么,否则这就是你需要做的。

于 2010-05-12T07:13:16.547 回答
2

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

如果数据由于您的应用程序中的逻辑而发生变化,那么这两种形式的缓存都是有问题的,您最好使用其他方式。

于 2010-05-12T07:23:24.887 回答