在Rails 3中初始化变量的位置

kan*_*aki 3 ruby-on-rails instance-variables ruby-on-rails-3

我在过去的3个月里一直在发现Ruby on Rails,我很着迷.但有些事情我不知道哪种方法最好.现在我堆叠了一些变量的初始化.所有应用程序都在ajax上运行,因此所有实例变量只应初始化一次.

我已经尝试在applicationController中编写一个方法'initialize',它只运行一次,但问题是我正在访问尚未初始化的请求对象.

我在applicationController中尝试了一个before_filter,但是每次请求都会运行它,即使它是一个ajax请求.

有谁知道如何使用请求对象中的值初始化实例变量?是的,可能是一个新手问题.

我正在使用Ruby 1.8.7和Rails 3.提前感谢

dex*_*ter 8

我假设,当您登陆页面时,您希望执行初始化部分,并跳过来自同一页面的所有ajax请求.

class ApplicationController < ActionController::Base

  before_filter :load_vars

  protected

  def load_vars
    unless request.xhr? #check if ajax call
       # do all your initialization here
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢Dexter,你解决了我的问题.对于我糟糕的解释,我很抱歉.我唯一没有xhr请求的是登陆请求,它是带参数的请求,因此我需要初始化这些参数一次.使用上面的代码,初始化过程只发生一次.伟大的社区.感谢大家 (2认同)