Как я могу убедиться, что Ruby использует гем Rack, который продается в моем приложении Rails? - PullRequest
0 голосов
/ 14 февраля 2012

Приложение My Rails 2.3.x не работает, потому что оно использует неправильную версию Rack ( с ошибкой ). В моей системе есть две версии Rack: одна (правильная версия) и системная, установленная через apt-get.

Почему он использует не ту версию? Это меня особенно озадачивает, потому что ранее выпущенная версия правильно используется в стеке вызовов. И как я могу заставить его использовать правильную версию?

Вот выдержка из трассировки стека, которую я получаю при сбое приложения:

/usr/lib/ruby/vendor_ruby/rack/utils.rb:202:in `set_cookie_header!'
/home/alaveteli/vendor/gems/rack-1.1.0/lib/rack/response.rb:57:in `set_cookie'
/home/alaveteli/vendor/rails/actionpack/lib/action_controller/response.rb:181:in `set_cookie'

Обратите внимание, что в строке 2 используется фирменная стойка, а в строке 1 - системная стойка. (Строка 57 из response.rb вызывает модуль из Rack, таким образом: Utils.set_cookie_header!(header, key, value).)

Мой $LOAD_PATH, как я полагаю, должен быть, когда вендорные драгоценные камни стоят перед системными.

Да, я планирую в ближайшее время перейти на использование Bundler.

1 Ответ

0 голосов
/ 09 сентября 2014

Попробуйте использовать rbenv и ruby-build.Это нормальная система управления версиями ruby ​​(в отличие от rvm, которая безумна).Вы получаете рубиновую версию для каждой папки и все ее драгоценные камни.Когда у меня возникают проблемы с alaveteli, я обычно задаю их в списке рассылки dev.Я бегу румынские алаветели.

...