I18n和i18n-active_record - 没有I18n :: Backend :: ActiveRecord类?

时间:2012-03-14 08:24:03

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord internationalization

我正在使用rvm和ruby 1.9.3,rails 3.1,gems i18n和i18n-active_record和mysql。在vendor / plugins / 18n-active_record / i18n-database-backend.rb我有

module I18n
  module Backend
    class Database < ActiveRecord
    ...

命令rails server,rails console甚至rake db:version失败,错误:

/vendor/plugins/i18n_database_backend/lib/i18n_database_backend.rb:3:in `<module:Backend>': wrong argument type Module (expected Class) (TypeError)

看起来应用程序正在尝试使用ActiveRecord模块而不是I18n :: Backend :: ActiveRecord(http://rubydoc.info/docs/rails/2.3.8/I18n/Backend/ActiveRecord)。这种行为的原因是什么?当然安装了Gem i18n,并执行了命令bundle install。

1 个答案:

答案 0 :(得分:2)

尝试在模块定义上方的代码中明确要求类,如下所示:

require 'i18n/backend/active_record'

确保i18n-active_record中有Gemfile个宝石。