Пусть Rails 2.3.x игнорирует жемчужину i18n

У меня есть проект Rails 2.3.5, который использует возможности локализации Rails. У меня также установлена ​​бета-версия Rails 3 (которая зависит от гема 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 требует i18n версии 0.4.1. Я не понимаю, как все больше людей не сталкиваются с этой проблемой, поскольку теперь может показаться, что если у вас установлены и Rails 2, и Rails 3, вы столкнетесь с этим.


person Jared    schedule 04.06.2010    source источник


Ответы (4)


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

http://gembundler.com/rails23.html

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

person paulbjensen    schedule 24.08.2010
comment
Проголосовать за сборщика. С тех пор, как я опубликовал это, сборщик перешел на версию 1.0 и стал намного лучше. Его очень легко настроить как в проектах Rails 2.3, так и в Rails 3. Это решение, которое я буду использовать в будущем. - person Jared; 01.09.2010
comment
Спасибо ... действительно гуд солнеч исправил мою проблему. - person Amal Kumar S; 30.05.2011

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

person Konstantin Haase    schedule 07.06.2010
comment
Хотя это верный ответ, я ищу не тот ответ. Я уже использую RVM, но многие люди этого не делают. Должен быть способ полностью справиться с этим из Rails, если это будет функцией Rails. Вам не нужно устанавливать и настраивать RVM для управления функцией самого Rails. - person Jared; 07.06.2010
comment
Это возможно из Rails 3, поскольку он поставляется с Bundler. RubyGems не имеет возможности полностью отключить Gem. Хотя вы можете явно активировать старую версию i18n, единственный способ убрать ее с пути загрузки - вообще не использовать rubygems. - person Konstantin Haase; 07.06.2010
comment
Вы также можете преобразовать старый проект rails для использования сборщика гемов. У сборщика драгоценных камней есть возможность отключить системные драгоценные камни, полагаясь только на драгоценные камни в наборе. Он также имеет намного лучшее управление зависимостями. Время настройки: 15 минут - person Luke Chadwick; 12.06.2010
comment
Если у вас есть дополнительные вопросы о RVM, есть люди, готовые помочь 24/7 на канале #rvm на freenode: webchat.freenode.net/?channels=rvm. - person Konstantin Haase; 14.06.2010
comment
Я отметил ваш ответ как принятый, Константин. Я неохотно перешел к использованию наборов драгоценных камней для решения своей проблемы. Однако я все же считаю, что это не самое идеальное решение. В Rails должна быть возможность сказать, используйте эту версию i18n или просто не использовать ее вообще, даже если она доступна в системе. - person Jared; 14.06.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'
person wingfire    schedule 01.09.2010
comment
Исправлена ​​ошибка, поэтому разморозьте и обновите рельсы. обновление драгоценного камня; грабли рельсы: разморозить - person wingfire; 01.02.2011

Или просто отредактируйте: /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'

person Paolo    schedule 02.10.2010