在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中。如何解决问题?感谢。
答案 0 :(得分:1)
这听起来好像你在更新代码库后没有在生产中重启nginx。
e.g。
$ sudo /etc/init.d/nginx restart