2012-01-17 2 views
2

Недавно я написал несколько строк коды рельсов, какПочему у меня возникают проблемы с записью ключа хэша?

RandomApp::Application.config.session_store :cookie_store, key: '_ramdom_app_session' 

, и я использовал этот вид кода в развитии и в рабочем режиме - она ​​работала должным образом. Сейчас я получаю сообщение об ошибке, которую я истолковать я должен принять следующий код вместо этого: (. Обратите внимание на различное использование хэш-ключа с именем «ключ»)

RandomApp::Application.config.session_store :cookie_store, :key => '_ramdom_app_session' 

я разрабатывал приложения на различные системы (ПК, ноутбуки) с использованием git. Я использую ruby ​​1.8.7 (2011-12-28 patchlevel 357) [i386-mingw32] и Rails 3.1.3. Что изменилось (например, в рубине или рельсах) или что я изменил, что вызвало эту ошибку?

+0

Рубин 1.8.7 не поддерживает '{ключ: значение}' синтаксис. Если он работал до этого, то в это время выполнялось 1.9.x. –

ответ

2

Ключ: синтаксис в Ruby 1.8.7 отсутствует. Он не добавлялся до 1,9. Вы, должно быть, изменили версии Ruby где-то вдоль линии.

1

Поддерживается {ключ: значение}, начиная с Ruby 1.9.x. Синтаксис {key => value} является старым, но он все равно может быть интерпретирован текущей версией Ruby. Поскольку ваше приложение было разработано в версии Ruby> = 1.9.x, вы не должны продолжать использовать Ruby 1.8.7, потому что тогда вы столкнетесь с более странными проблемами, двигающимися вперед. Вы должны проверить, какая версия Ruby используется для производства, чтобы вы могли установить ту же версию Ruby в вашу систему.

Существует очень хороший рубин Менеджер версий, которые вы можете использовать для переключения между версиями Ruby: http://beginrescueend.com/

Смежные вопросы