我正在构建一个 Rails 应用程序并且使用的是 Rails 4.0.1。 我有一个错误,并注意到它在 3 个月前被称为 rails 上的一个错误,所以我决定:捆绑更新并获得 rails 4.0.3
这样做之后,测试和服务器都不会启动,并且会抛出错误:
gems/railties-4.0.3/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `action_mailer' for # (NoMethodError)
目前我在 config/environments/* 中注释掉了 action_mailer 行,但最好能找到一个真正的解决方案。 在 Google 上搜索没有找到关于此特定错误的任何信息。
如果我可以提供更多详细信息,请告诉我。 非常感谢。
更新:这是我的 Gemfile
source 'https://rubygems.org'
ruby '2.0.0'
gem 'bootstrap-sass'
gem 'bootstrap_form'
gem 'coffee-rails'
gem 'rails'
gem 'haml-rails'
gem 'sass-rails'
gem 'uglifier'
gem 'jquery-rails'
gem 'bcrypt-ruby', '~> 3.1.2'
group :development do
gem 'sqlite3'
gem 'thin'
# gem "better_errors"
gem "binding_of_caller"
end
group :production do
gem 'pg'
gem 'rails_12factor'
end
group :development, :test do
gem 'rspec-rails'
gem 'pry'
gem 'pry-nav'
end
group :test do
gem "faker"
gem "capybara"
gem "database_cleaner"
gem "launchy"
gem 'shoulda-matchers'
gem "selenium-webdriver"
gem "fivemat"
gem 'fabrication'
end
最佳答案
已找到解决方案,以防有人落在这里:
主要问题是在我的 Gemfile 中,您可以看到没有设置特定的 gem 版本(除了 bcrypt) 不知何故,这使得 bundle 在我尚不清楚的情况下安装了过时的版本。
修复步骤:
- 完全删除 gemset(如果您正在使用一个)或卸载所有 gem
- 删除 Gemfile.lock
- 指定您需要的 Rails 版本,例如
'rails', '~> 4.0.3'
捆绑安装
你已经准备好了:)
关于ruby-on-rails - `method_missing':#<Rails::Application::Configuration:0x00> 的未定义方法 `action_mailer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21894467/