簡體   English   中英

`method_missing':#Rails :: Application :: Configuration:0x00>的未定義方法`action_mailer'

[英]`method_missing': undefined method `action_mailer' for #<Rails::Application::Configuration:0x00>

我正在構建一個rails應用程序並使用rails 4.0.1。 我有一個錯誤,並注意到它被提到作為3個月前的rails上的錯誤所以我決定:捆綁更新並獲得rails 4.0.3

在這樣做之后,測試和服務器都不會啟動並且它們會拋出錯誤:

gems / railties-4.0.3 / lib / rails / railtie / configuration.rb:95:在`method_missing'中:未定義的方法`action_mailer'用於#(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在我尚不清楚的情況下安裝過時的版本。

修復步驟:

  1. 完全刪除gemset(如果您使用的是寶石)或卸載所有寶石
  2. 刪除Gemfile.lock
  3. 指定你需要什么版本的導軌,例如'rails', '~> 4.0.3'
  4. bundle install

你被設定:)

在我的情況下,我已經安裝了寶石,因為devkit沒有正確安裝,寶石沒有編譯。

設置devkit后,我必須卸載所有rails gems(actionmailer,activerecord,actioncable ......),然后再次安裝rails。

然后它奏效了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM