Rails 3: ошибка «неинициализированная константа Formtastic :: FormBuilder» после развертывания приложения на рабочем сервере - PullRequest
3 голосов
/ 22 июня 2011

Я пытаюсь развернуть приложение Rails3.0 на рабочем сервере. Раньше было много неприятностей, но все они решены. А теперь у меня есть еще один.

Текст страницы ошибки пассажира:

Сообщение об ошибке: неинициализированная константа Formtastic :: FormBuilder

Класс исключения: NameError

Backtrace:

0 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/client_side_validations-3.1.0/lib/client_side_validations/formtastic.rb 20 в `'

1 /home/ubuntu/projects/questroad/config/initializers/client_side_validations.rb 4 в ' 2 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/railties-3.0.7/lib/rails/engine.rb 201 in блок (2 уровня) в '

3 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/railties-3.0.7/lib/rails/engine.rb 200 в "каждом"

...

Результаты поиска Google не помогли мне, и теперь я здесь.

UPD: Также при попытке запустить сервер WEBrick произошла та же ошибка.

UPD: Я пытаюсь прокомментировать строку "gem 'client_side_validation'" в Gemfile, и ошибка исчезла. Но теперь я не могу использовать этот драгоценный камень.

Ответы [ 4 ]

6 голосов
/ 22 июня 2011

У меня возникла та же проблема, но не на производстве, я получил эту ошибку в разработке после выполнения:

bundle update

и затем попытался запустить мой rspecs.

Кажетсяэто обновление пакета установило client_side_validations 3.1.0, которое, кажется, создает проблемы (... не знаю почему, у меня нет времени на его анализ), но исправленная версия в Gemfile решила это:

gem 'client_side_validations', '3.0.5' 

надеюсь, это поможет!

3 голосов
/ 16 июля 2011

Это происходит потому, что у вас установлен Formtastic 1.x. 3.1.x версия ClientSideValidations ожидает Formtastic 2.

0 голосов
/ 22 июня 2011

Я не знаю, следовали ли вы этому процессу, но я рекомендую вам обернуть вашего пассажира своим набором драгоценностей и начать с RVM для режима независимого пассажира

rvm wrapper ruby-1.9.2-p180@rails3.0 passenger

и для запуска, например, так:

rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.2-p180@rails3.0' -c \
    'cd /<your app PATH>/current/ && bundle exec passenger start -a 127.0.0.1 -p 3000 -d
0 голосов
/ 22 июня 2011

Проверьте, установлен ли у вас драгоценный камень.

Также запустите это на производственной машине

bundle install --deployment

Так как все драгоценные камни будут установлены в месте, которое сможет найти пассажир. Иногда бывает, что пассажир не может найти дорожки с драгоценными камнями.

...