致力于将 Rails 2.3.17 应用程序升级到 Rails 3.2.22.2(运行 ruby 1.9.3-p551)。能够通过 ugprading 所有 gem/更新目录结构/添加所有新/更新的 rails 文件的痛苦部分。
rails 服务器现在正在启动,但是当我尝试加载第一页时,它会失败并显示以下堆栈跟踪:
NoMethodError: undefined method `translate' for # <I18n::Backend::ActiveRecord:0x007ff64dc72400>
/myapp/vendor/bundle/ruby/1.9.1/gems/i18n-0.7.0/lib/i18n/backend/chain.rb:46:in `block (2 levels) in translate'
/myapp/vendor/bundle/ruby/1.9.1/gems/i18n-0.7.0/lib/i18n/backend/chain.rb:44:in `catch'
/myapp/vendor/bundle/ruby/1.9.1/gems/i18n-0.7.0/lib/i18n/backend/chain.rb:44:in `block in translate'
/myapp/vendor/bundle/ruby/1.9.1/gems/i18n-0.7.0/lib/i18n/backend/chain.rb:43:in `each'
...
附加说明:我在 config/initializers/ 文件夹中有一个 locale.rb 文件,其中包含:
require "i18n/backend/cache"
I18n::Backend::ActiveRecord.send(:include, I18n::Backend::Memoize)
I18n::Backend::ActiveRecord.send(:include, I18n::Backend::Flatten)
I18n::Backend::Simple.send(:include, I18n::Backend::Memoize)
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)
I18n::Backend::Chain.send(:include, I18n::Backend::Cache)
I18n.backend = I18n::Backend::ActiveRecord.new
I18n.backend = I18n::Backend::Chain.new(I18n::Backend::Simple.new, I18n.backend)
我的 Gemfile 看起来像:
source "http://rubygems.org"
gem "rails", "3.2.22.2"
gem "rake", "11.1.0"
gem "a9n", "0.3.0"
gem "geoip-c"
gem "josevalim-auth_helpers"
gem "delayed_job", "~>3.0.5"
gem "mysql2"
gem "activemerchant", "1.43.3"
gem "liquid"
gem "paperclip"
gem "mechanize", "2.7.4"
gem "net-ssh", "~>2.9.4"
gem "net-sftp", "2.0.5"
gem "authlogic", :git => "git://github.com/binarylogic/authlogic.git"
gem "rd_searchlogic"
gem "rack", "~>1.4.5"
gem "activerecord-mysql2-adapter"
gem "declarative_authorization"
gem "inherited_resources"
gem "acts_as_audited"
gem "rails-indexes"
gem "geocoder"
gem "has_magic_columns"
gem "grimen-delayed_job_mailer"
gem "asset_packager"
gem "recaptcha", "0.4.0"
gem "libxml-ruby"
gem "xml-simple"
gem "haml"
gem "airbrake", "~>4.3.7"
gem "sinatra"
gem "newrelic_rpm"
gem "will_paginate"
gem "rexml-expansion-fix"
gem "hominid"
gem "money"
gem "aasm", "~>3.4.0"
gem "dalli"
gem "acts-as-taggable-on"
gem "i18n"
gem "i18n-active_record", :require => "i18n/active_record"
gem "hpricot"
gem "rest-client"
gem "nokogiri", "~>1.6.8"
gem "exact-target"
gem "pdfkit"
gem "json"
gem "savon"
gem "twilio-ruby"
gem "oj"
gem "httparty"
gem "rforce"
gem "ruby-ntlm"
gem "ffaker"
gem "simple_qs"
gem "time_difference"
gem "aws-sdk-v1"
gem "wkhtmltopdf-binary"
gem "gyoku"
gem "mime-types"
gem "highline"
gem "exifr"
gem "encryptor","~>1.3.0"
gem "docile"
gem "american_date"
gem "gon", "~>4.0.0"
gem "rmagick", "~> 2.0" # for ruby 1.x, since 2.0 it could be removed
group :staging do
gem "ruby-prof"
end
gem "capistrano", "~> 2.15"
gem "capistrano_deploy_lock"
gem "hipchat"
end
group :spreadsheet do
gem "spreadsheet"
end
group :gpg do
gem "gpgme"
end
group :mail do
gem "mail"
gem "bounce_email"
end
group :development, :staging do
gem "pry"
gem "pry-remote"
end
group :development, :test do
gem "rspec-rails", "~> 3.0.0"
gem "rspec", "~> 3.0.0"
gem "rspec-core", "~> 3.0.0"
gem "rspec-expectations", "~> 3.0.0"
gem "fabrication"
end
group :test do
gem "bourne", "~> 1.2.1", :require => false
gem "database_cleaner", "0.9.1"
gem "mocha", "0.12.7", :require => false
gem "rack-test"
gem "simplecov"
gem "timecop"
gem "test-unit", "~>3.0"
gem "shoulda-matchers", "1.0.0", :require => false
end
任何想法为什么它可能会生成该错误消息?