У Rails 2.3.x игнорируется гем i18n - PullRequest
10 голосов
/ 04 июня 2010

У меня есть проект Rails 2.3.5, который использует функции локализации Rails. Также у меня установлена ​​Rails 3 beta (зависит от гема i18n). Rails 2.3.5 с радостью справится с локализацией самостоятельно (без установленного i18n), однако, если доступен гем i18n, он использует его.

Недавно я обновил свои драгоценные камни и теперь у меня установлены версии 0.3.7 и 0.4.0 i18n. Rails, конечно же, хочет загрузить и использовать последнюю версию, которая вызывает ошибки в моем проекте. Я попытался установить версию gem на 0.3.7, которая обходит ошибки в веб-приложении. Однако мы используем resque и resque_mailer для задержки отправки сообщений. Когда рабочий выбирает почтовое задание из очереди, он игнорирует мое требование config.gem в environment.rb и в любом случае использует версию 0.4.0.

В идеале, я бы хотел сказать Rails, чтобы он вообще не использовал гем i18n. Как мне это сделать?

Обновление: Начиная с бета-версии 4, для Rails 3 теперь требуется версия 0.4.1 i18n. Я не понимаю, как больше людей не сталкиваются с этой проблемой, как это может показаться сейчас, если у вас установлены и Rails 2, и Rails 3, вы столкнетесь с этим.

Ответы [ 4 ]

5 голосов
/ 24 августа 2010

Я следовал инструкциям, указанным здесь:

http://gembundler.com/rails23.html

и это сработало.

3 голосов
/ 07 июня 2010

Вы можете использовать Bundler или RVM Gemsets , чтобы сделать гем i18n недоступным из вашего приложения. Или вы можете обновить приложение Rails.

2 голосов
/ 02 октября 2010

Или просто отредактируйте: /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/vendor.rb

и очередь gem 'i18n', '>= 0.1.3'

В gem 'i18n', '0.1.3'

2 голосов
/ 01 сентября 2010
  1. Заморозить версию рельсов: rake VERSION=2.3.5 rails:freeze:gems
  2. Исправьте версию в файле vendor / rails / activesupport / lib / active_support / vendor.rb строка 24 в: gem 'i18n', '>= 0.1.3', '< 0.4.0'
...