Вопрос

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

Недавно я обновил свои драгоценные камни, и теперь у меня установлены версии 0.3.7 и 0.4.0 i18n.Rails, конечно, хочет загрузить и использовать последнюю версию, что вызывает ошибки в моем проекте.Я попытался установить версию драгоценного камня на 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, вы столкнетесь с ней.

Это было полезно?

Решение

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

http://gembundler.com/rails23.html

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top