気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

【Rails】rails cしたらMissing settingでエラーになった時の解決法

こんにちは。

今日は久々の晴ればれ。気分も最高だ。
その気持ちでチャリで出かけよ!と妻に言ったらやだと言われました。

どうもハチマキです。

はじめに

さて、今回はエラー解消についてのメモを書いて行こうと思います。

コンソールを開く際に出た謎のエラー。
先輩エンジニアに質問したら秒で解決しました。

本日の概要 : Missing settingでエラーになった時の解決法

事象

$ bundle exec rails cしたらMissing settingエラーになった

エラー例

$ bundle exec rails c
/Users/ユーザ名/アプリ名/vendor/bundle/ruby/2.2.0/gems/simple_form-2.1.1/lib/simple_form/inputs/boolean_input.rb:37: warning: circular argument reference - unchecked_value
/Users/ユーザ名/アプリ名/vendor/bundle/ruby/2.2.0/gems/settingslogic-2.0.8/lib/settingslogic.rb:173:in `missing_key': Missing setting 'line' in 'social_login' section in /Users/ユーザ名/アプリ名/config/settings.yml (Settingslogic::MissingSetting)
 from /Users/ユーザ名/アプリ名/vendor/bundle/ruby/2.2.0/gems/settingslogic-2.0.8/lib/settingslogic.rb:127:in `method_missing'
 from /Users/ユーザ名/アプリ名/config/initializers/devise.rb:10:in `block in <top (required)>'
 from /Users/ユーザ名/アプリ名/vendor/bundle/ruby/2.2.0/gems/devise-2.0.6/lib/devise.rb:284:in `setup'
 from /Users/ユーザ名/アプリ名/config/initializers/devise.rb:3:in `<top (required)>'
 ・
 ・
 (省略)

問題点

おそらくsettings.ymlファイルの何かが欠けている。または空の可能性がある

解決方法

settings.ymlファイルを再作成する必要があるため、settings.yml.exampleファイルをsettings.ymlファイルにコピーすれば解決

$ cd config #config配下に移動

$ cp settings.yml.example settings.yml #cpコマンドでファイルをコピーする

$ cd .. #戻る

$ bundle exec rails c
/Users/ユーザ名/アプリ名/vendor/bundle/ruby/2.2.0/gems/simple_form-2.1.1/lib/simple_form/inputs/boolean_input.rb:37: warning: circular argument reference - unchecked_value
/Users/ユーザ名/アプリ名/lib/rack/attack/notification.rb:4: warning: circular argument reference - req
/Users/ユーザ名/アプリ名/lib/rack/attack/notification.rb:19: warning: circular argument reference - ip
/Users/ユーザ名/アプリ名/config/seory/helper.rb:56: warning: circular argument reference - collection
Loading development environment (Rails 3.2.22.2)
[1] pry(main)> 

無事に動きました!