2012-07-03 2 views
0

Я с помощью Nginx + единорога при производственеинициализированная постоянная ApplicationController :: канкан (NameError) в производстве

И я получил следующее сообщение об ошибке в журнале/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 (ниже драгоценный камень 'рельсы'). Канканский жемчуг установлен. Я пробовал обе версии 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

+0

пожалуйста, напишите ваш Gemfile. как вам нужны ваши драгоценные камни? похоже, что это неправильно. требует ли «cancan» в вашем контроллере приложений? – phoet

+0

Была ссылка на мой Gemfile, но я повторяю ее снова. 'require 'cancan'' не помогло мне. Как я могу правильно это исправить? Проблема в том, что это работает на localhost – ck3g

ответ

2

Я думаю unicorn не загружает новые драгоценные камни, при перезагрузке.

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

исправить проблему

+0

Спасибо! Я почесал голову над этим, так как начал использовать Единорог. Раньше мне приходилось перезагружать сервер, чтобы он снова работал. –