Rails - 如何在没有触及会话表的情况下查询数据库

时间:2010-05-17 11:06:14

标签: ruby-on-rails session

我正在尝试向我的应用程序提供一个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)。感谢。

2 个答案:

答案 0 :(得分:1)

您是否在此请求中使用会话?例如用于认证。这可能是个问题。

您可以禁用控制器和/或操作的会话:

class MyController < ApplicationController
  session :off, :only => :view

  ...

end

与常规控制器过滤器非常相似。

答案 1 :(得分:1)

这是什么版本的Rails?在Rails 2.3中,会话是延迟加载的,因此请检查ApplicationController和插件中是否有访问会话中任何值的任何代码(可能在before_filter中)。您希望避免此view操作的过滤器。