代码之家  ›  专栏  ›  技术社区  ›  sa125

Rails-如何在不接触会话表的情况下查询数据库?

  •  0
  • sa125  · 技术社区  · 15 年前

    我正在尝试为我的应用程序提供一个HTTP API,用于查询只读数据库(用于复制目的)。我发现我的应用程序在请求b/c时会反复崩溃。每当我查询db时,调用都试图更新sessions表。当我返回一些文本而不点击数据库获取信息时,不会发生这种情况。

    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
    

    如何限制它在此请求时接触会话表(它当前正在为该会话的更新字段发出更新)。谢谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Hardryv    15 年前

    这是什么版本的Rails?在Rails2.3中,会话是延迟加载的,因此请签入ApplicationController和插件以获取任何代码(可能在 before_filter )它正在访问会话中的任何值。你要避免这个过滤器 view 行动。

        2
  •  1
  •   Toby Hede    15 年前

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

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

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

    工作原理与常规控制器过滤器非常相似。