#はじめに
今まで課題をこなしながら出会ってきたエラー文たちをまとめておきます。
といっても、解決策はケースバイケースだと思うので、こういうエラー文はこう考えるといいかもしれないです・・・程度の備忘録です。
#エラー文一覧
Name Error
(例1)
Name Error in Books#index
undefind local variable or method 'book'
Did you mead? @book @book
↓
ローカル変数かメゾットの'book'が定義されていない。
@bookか@booksではないのか。
=> 考えられること
スペルミスが多いです。もう一度指摘されているページを見てみましょう。
(例2)
Name Error in Books#index
uninitialized constant user::Relationship
24 passive-relationships.find-by(following_id:user_id).oresent?
↓
初期化されていない定数 user::Relationship
(=定義されたクラスを読むことができない)
=> 考えられること
こちらも、スペルミスの場合が多いです。model,view,controllerを見てみましょう。
No Method Error
(例)
No Method Error in Books#create
undefind method 'user' for nil :nilclass
↓
メゾットエラー(定義されていないメゾットが呼び出されました)
'user'というメゾットが定義されていません。
=> 考えられること
①in Books#create → Booksテーブルにuserカラムを追加してない
②もし、Did you meadn?があるなら、それを記述しなおす。
ちなみに、カラム指定なんてしない'each'がよくこのエラー文で出てました(解決忘れてしまった)。
###Actioncontroller::UnknownFormat
(例1)
Action Controller::Unknown Format in Homescontroller#top
↓
アクションに対するviewファイルがないエラー
=> 考えられること
viewファイルを作成してないのかもしれません。
(例2)
Action COntroller::Url Generation Error in Member::Addresses#index
No route matches
{action=> "edit" :controller=>"member/addresses#index" id=>nil}
missing required keys:[id]
↓
editで指定している箇所にidがないので、マッチできずに、URLの生成に失敗しました。
=> 考えられること
controllerのeditにidを指定してないかもしれません。
###Template is missing
(例)
Template is missing
controller render:show
↓
テンプレートがありません。
=> 考えられること
controllerで設定しているアクションのviewが設定されていない場合があります。
###ArgumentError
(例)
ArgumentError in Books#index
first argument in form cannot contain nil or be empty
↓
引数エラー
フォームの初めの引数はnilを含むことも空にすることもできないです。
=> 考えられること
例えば、絶対に値を入れないといけないログインユーザーの名前を編集画面で空白にしてアップデートする際などに、起こります。
そのため、①空白でアップデートする際にエラーメッセージを出力させる②バリデーションを書くことで解決できる場合があります。
###LoadError
(例)
Load Error in Usercontroller#show
unable to autoload constant Relationship
↓
ロードエラー
定数のRelationshipを自動ロードできません。
=> 考えられること
私の場合、フォロー機能にてmodel の Relationshipのつづりが間違っていました。
こんな感じです。
また増えたら更新していきます。