「rails server」実行時に「NoMethodError」がでた場合の対処法

Ruby on Rails Tutorial をやっていると結構環境によって躓くことがあるのでメモっておく。

 第1章で $ rails server  => Booting WEBrick => Rails application starting on http://0.0.0.0:3000 => Call with -d to detach  => Ctrl-C to shutdown server  自分の環境で上記を実行すると下記のようなエラーが発生した。 /home/***/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/railties-4.0.5/lib/rails/railtie/configurable.rb:30:in method_missing': undefined method application' for #<FirstApp::Application:0x0000060132cd30> (NoMethodError) 対処法としては $ vim ~/rails_project/firlst_app/config/environments/development.rb

~/rails_project/firlst_app/config/environments/development.rb

src

1 Rails.application.configure do

dest

1 FirstApp::Application.configure do 上記のような変更を加えればOK。 次にhttp://localhost:3000に接続すると

DEPRECATION WARNING: You didn't set config.secret_key_base. Read the upgrade documentation to learn more about this new config option. (called from service at /home/YAMAMOTO_HI/.rbenv/versions/2.0.0-p451/lib/ruby/2.0.0/webrick/httpserver.rb:138)

[2014-07-02 15:33:05] ERROR RuntimeError: You must set config.secret_key_base in your app's config.

こんな感じのエラーがでるので $ rake secret  して、出てきた文字列をコピー  $ vim ~/rails_projects/first_app/config/initializers/secret_token.rb

 ~/rails_projects/first_app/config/initializers/secret_token.rb

FirstApp::Application.config.secret_key_base = '***' ←コピーした文字列に置き換える  以上