記録

記録

「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 = '***' ←コピーした文字列に置き換える
 以上