我正在使用 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服务器、rails控制台甚至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。
最佳答案
尝试在模块定义上方的代码中明确要求该类,如下所示:
require 'i18n/backend/active_record'
并确保您的 Gemfile
中有 i18n-active_record
gem。
关于ruby-on-rails - I18n 和 i18n-active_record - 没有 I18n::Backend::ActiveRecord 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698163/