2014-02-19 73 views
6

我在構建一個rails應用程序並使用rails 4.0.1。 我有一個錯誤,並注意到它被提及爲3個月前的軌道上的錯誤,所以我決定:捆綁更新和得到軌4.0.3`method_missing':未定義的方法`action_mailer'爲#<Rails :: Application :: Configuration:0x00>

後這樣做既不測試也不會啓動服務器,他們拋出一個錯誤:

寶石/ railties-4.0.3/LIB /軌道/ railtie/configuration.rb:95:在`的method_missing ':未定義的方法`action_mailer' 爲#(NoMethodError)

目前我註釋掉了config/environments/*中的action_mailer行,但是找到真正的解決方案會很好。 在谷歌搜索沒有產生任何關於這個具體的錯誤。

請讓我知道,如果我可以提供任何更多的細節。 非常感謝。

更新:這是我的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 
+0

可能值得嘗試刪除Rails 3寶石...您可能還需要重新安裝Rails 4. – CDub

+0

感謝您的回覆。我刪除了所有的寶石,並重新安裝,但仍然是同樣的問題。我添加了我的gemfile以防它有用。 – superuseroi

回答

3

發現的解決方案,萬一有人土地位置:

的主要問題是,在我的Gemfile你可以看到沒有特定的寶石版本設置(除來自bcrypt) 不知何故,這使得捆綁安裝過時的版本在我還不清楚的情況下。

步驟來解決:

  1. 徹底清除寶石(如果你使用一個)或卸載所有 寶石
  2. 刪除Gemfile.lock的
  3. specifiy你需要什麼版本的Rails,例如'rails', '~> 4.0.3'
  4. bundle install

你設置:)

+0

我現在遇到了這個確切的問題,但我擔心我可能會破壞我的環境,實施此解決方案。當你說完全刪除你的寶石,你是指項目本地的寶石,還是你的全球寶石?我如何去執行這些步驟? – d00medman

+0

很難在評論中解釋。取決於你使用的是哪個ruby版本管理器(rvben?Rvm?/ etc ..更好的問他們各自的社區)。 gemfile.lock具有所有正在使用的版本,如果您希望您可以複製粘貼並僅更改rails gem – superuseroi

0

在我的情況我已經安裝了寶石和自的devkit沒有正確安裝寶石沒有編譯。

設置devkit後,我不得不卸載所有的rails gems(actionmailer,activerecord,actioncable ......),然後再次安裝rails。

然後它工作。

相關問題