1

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

"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 中进行的。如何解决问题?谢谢。

4

1 回答 1

1

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

例如

  $ sudo /etc/init.d/nginx restart
于 2013-05-31T22:27:19.477 回答