10

我有一个使用 Rails 本地化功能的 Rails 2.3.5 项目。我也碰巧安装了 Rails 3 beta(这取决于 i18n gem)。Rails 2.3.5 会很乐意自己处理本地化(没有安装 i18n),但是如果 i18n gem 可用,它会使用它。

最近我升级了我的 gems,现在安装了 i18n 的 0.3.7 和 0.4.0 版本。当然,Rails 想要加载和使用导致我的项目出错的最新版本。我尝试将 gem 版本设置为 0.3.7,以解决 Web 应用程序中的错误。但是,我们使用 resque 和 resque_mailer 来延迟消息的发送。当工作人员从队列中提取邮件作业时,它会忽略我在 environment.rb 中的 config.gem 要求并使用 0.4.0 版本。

理想情况下,我想告诉 Rails 根本不要使用 i18n gem。我怎么做?

更新:从 beta 4 开始,Rails 3 现在需要 i18n 版本 0.4.1。我看不出有多少人没有遇到这个问题,如果你同时安装了 Rails 2 和 Rails 3,你就会遇到这个问题。

4

4 回答 4

5

我按照此处定义的说明进行操作:

http://gembundler.com/rails23.html

它奏效了。

于 2010-08-24T17:23:10.390 回答
3

您可以使用Bundler或 RVM 的Gemsets使 i18n gem 在您的应用程序中不可用。或者你可以升级你的 Rails 应用程序。

于 2010-06-07T10:39:34.917 回答
2
  1. 冻结 rails 版本: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'
于 2010-09-01T14:27:36.497 回答
2

或者只是编辑:/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'

于 2010-10-02T10:05:03.940 回答