gpt4 book ai didi

ruby-on-rails - 在 Rails 中缓存 JSON 结果

转载 作者:行者123 更新时间:2023-12-04 21:24:16 25 4
gpt4 key购买 nike

我有以下 Controller ,它在接收到/tags 的 HTTP 请求时返回标签列表

class TagsController < ApplicationController
caches_page :index

def index
respond_to do |format|
format.json {
render :json => Tag.all(:order => "name").to_json
}
end
end
end

我注意到每当向/tags 发出请求时,Rails 都会在/public/tags.json 生成一个缓存文件。但是,它似乎从不使用此缓存文件。相反,它总是运行 SQL 查询来检索标签:
Started GET "/tags" for 127.0.0.1 at 2011-06-15 08:27:29 -0700
Processing by TagsController#index as JSON
Tag Load (0.7ms) SELECT "tags".* FROM "tags" ORDER BY name
Write page <project root path>/public/tags.json (0.3ms)
Completed 200 OK in 35ms (Views: 1.1ms | ActiveRecord: 0.7ms)

为什么 Rails 不使用正在生成的缓存文件?是因为请求是针对/tags 而不是/tags.json 的吗?

最佳答案

我想你可能是对的,你可以指定 :cache_path选择告诉它命名文件的内容,所以这样做

caches_page :index, :cache_path => '' # if not try 'tags'

如果你想包含参数,你也可以传递一个过程
caches_page :index , :cache_path => Proc.new {|controller| controller.params }

或其他任何东西

关于ruby-on-rails - 在 Rails 中缓存 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com