我正在尝试向我的应用程序提供一个HTTP api,用于查询只读的数据库(出于复制目的)。我发现我的应用程序在发出请求时反复崩溃b / c每次查询数据库时调用都会尝试更新会话表。当我返回一些文本而没有点击数据库获取信息时,就不会发生这种情况。
class APIController < AplicationController
def view
data = Product.find(params[:id]).to_json # will fail
data = { :one => 1, :two => 2 }.to_json # will succeed
respond_to do |format|
format.html { render :json => data }
end
end
end
如何限制它在此请求上触摸会话表(它当前在该会话的updated_at字段上发出UPDATE)。感谢。
答案 0 :(得分:1)
您是否在此请求中使用会话?例如用于认证。这可能是个问题。
您可以禁用控制器和/或操作的会话:
class MyController < ApplicationController
session :off, :only => :view
...
end
与常规控制器过滤器非常相似。
答案 1 :(得分:1)
这是什么版本的Rails?在Rails 2.3中,会话是延迟加载的,因此请检查ApplicationController和插件中是否有访问会话中任何值的任何代码(可能在before_filter
中)。您希望避免此view
操作的过滤器。