【问题标题】:`method_missing': undefined method `action_mailer' for #<Rails::Application::Configuration:0x00>`method_missing':#<Rails::Application::Configuration:0x00> 的未定义方法 `action_mailer'
【发布时间】:2014-03-20 14:36:30
【问题描述】:

我正在构建一个 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

【问题讨论】:

  • 可能值得尝试删除 Rails 3 gems...您可能还需要重新安装 Rails 4。
  • 感谢您的回复。我删除了所有宝石并重新安装,但仍然是同样的问题。我添加了我的 gemfile 以防万一。

标签: ruby-on-rails ruby ruby-on-rails-4 osx-mavericks


【解决方案1】:

找到解决方案,以防有人登陆:

主要问题是在我的 Gemfile 中,您可以看到没有设置特定的 gem 版本(除了 bcrypt) 不知何故,这使得 bundle 在我还不清楚的情况下安装了过时的版本。

修复步骤:

  1. 完全删除 gemset(如果您正在使用一个)或全部卸载 宝石
  2. 删除 Gemfile.lock
  3. 指定您需要的导轨版本,例如'rails', '~&gt; 4.0.3'
  4. bundle install

你准备好了:)

【讨论】:

  • 我现在遇到了这个确切的问题,但我担心我可能会破坏我实施此解决方案的环境。当您说要完全删除您的 gemset 时,您是指项目本地的 gemset,还是您的全局 gemset?我该如何实施这些步骤?
  • 很难在评论中解释。取决于您使用哪个 ruby​​ 版本管理器(rvben?rvm?/等。最好在各自的社区中询问)。 gemfile.lock 包含所有正在使用的版本,如果您愿意,可以复制粘贴并仅更改 rails gem
【解决方案2】:

在我的例子中,我已经安装了 gems,但是由于 devkit 没有正确安装,所以 gems 没有编译。

设置 devkit 后,我​​必须卸载所有 rails gem(actionmailer、activerecord、actioncable……),然后再次安装 rails。

然后它起作用了。

【讨论】:

    猜你喜欢
    • 2018-07-10
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多