生产中未初始化的常量ApplicationController :: CanCan(NameError)

时间:2012-07-03 16:55:22

标签: ruby-on-rails-3 cancan

我在制作中使用nginx +独角兽

我在log / unicorn.log上遇到以下错误,但它在localhost(在环境开发和生产环境中)都能正常工作

I, [2012-07-01T19:20:39.905978 #15422]  INFO -- : Refreshing Gem list
E, [2012-07-01T19:20:40.526582 #15418] ERROR -- : uninitialized constant ApplicationController::CanCan (NameError)

换行

rescue_from CanCan::AccessDenied do |exception|

我在Gemfile(宝石'轨道'下面)有宝石'cancan'。 Cancan gem已安装。我已经尝试了1.6.7和1.6.8版本

current$ bundle exec gem list cancan

*** LOCAL GEMS ***

cancan (1.6.7)

current$ bundle exec rails -v
Rails 3.2.3

current$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]

current$ bundle exec rails c production
Loading production environment (Rails 3.2.3)
1.9.3p125 :001 > CanCan
 => CanCan 
1.9.3p125 :002 > 

我的配置有什么问题?

UPD: require 'cancan'中的application_controller会导致错误No such file to load -- cancan (LoadError)

My Gemfile

1 个答案:

答案 0 :(得分:2)

我认为unicorn在重新启动时不会加载新宝石。

/etc/init.d/unicorn_<project_name> stop
/etc/init.d/unicorn_<project_name> start

解决问题