在开发中可用的Rails 3.2.12引擎中定义的方法在生产中找不到

时间:2013-05-31 20:24:01

标签: ruby-on-rails ruby-on-rails-3

在rails engine authentify中定义了一个方法load_session_variable,并由其他rails引擎中的控制器调用。在开发中,找到该方法没有问题。但是在生产中,有一个错误:

"NetworkError: 500 Internal Server Error - http://6.95.25.93/nbhy/projectx/misc_definitions/new.js?for_which=project_status&subaction=project_status"

在production.log中,错误是:

NameError (undefined local variable or method `load_session_variable' for #<Projectx::MiscDefinitionsController:0x0000000456f7f8>):

该方法在引擎验证中定义为:

   def load_session_variable
      session[:for_which] = @for_which if @for_which.present?
      session[:which_table] = @which_table if @which_table.present?
      session[:subaction] = params[:subaction] if params[:subaction].present?
    end

    module_function :load_session_variable

module_function声明应该使该方法可供其他人使用。生产环境是ubuntu 12.04,带有nginx / passenger。该开发是在Windows中。如何解决问题?感谢。

1 个答案:

答案 0 :(得分:1)

这听起来好像你在更新代码库后没有在生产中重启nginx。

e.g。

  $ sudo /etc/init.d/nginx restart