未初始化的常量 ApplicationController::CanCan (NameError) in product



我在生产中使用了nginx + unicorn

我在日志/独角兽处遇到以下错误.log但它在本地主机上工作正常(在环境开发和生产中)

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 中有 gem 'cancan'(在 gem 'rails' 下面)。康康宝石已安装。我已经尝试了 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 > 

我的配置可能有什么问题?

更新: require 'cancan' application_controller会导致错误No such file to load -- cancan (LoadError)

我的宝石文件

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

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

修复问题

最新更新