我有一组类别,我通过JSON在我的应用程序的平均使用过程中多次通过javascript访问这些类别。
所以在我的控制下,目前我有一个
@categories = Category.all
respond_to do |format|
format.html # index.html.erb
format.json
以及相应的index.json.erb文件,它格式化我需要的JSON。
现在我想为此添加一些memcached功能,所以在我添加的index.json.erb文件中
<% cache "JSON_CATEGORIES_ALL" do -%> block around my output
我的问题是如何让我的控制器在响应JSON请求时调用此缓存键并正常操作,从数据库中提取其他调用?
由于
答案 0 :(得分:1)
您可以查看请求的格式:
@categories = Category.all unless request.format == "application/json" and fragment_exists?("JSON_CATEGORIES_ALL")
respond_to do |format|
format.html # @categories is available
format.json # no database call if your cache fragment already exists
end
答案 1 :(得分:0)
我明白了......对于任何偶然发现它的人来说。
@categories = Category.all unless request.format == "application/json" and Rails.cache.exist?("views/JSON_CATEGORIES_ALL")
注意:向缓存键添加了views /!似乎rails会将此预先设置为视图上的缓存。
agregoire:谢谢
request.format == "application/json"