private tips

プログラミングとその他諸々の備忘録。

rails のエラーと解決(カラム名と予約語)

 

rails アプリ開発中の出来事です。

作成しようとしていたのは学生を扱う users controller と user model。

(student で良い気もしますが…)

そこで躓いたのが model の作成でした。

controller や model の作成はすんなりと通るのですが、それをいざ見てみよう、と

ブラウザで view を表示した途端にエラー。

 

NoMethodError - undefined method `[]' for nil:NilClass:

 みたいなやつが…

user model に紐づいた form_for の記述内容を変えてみたりしましたが、一向に改善しない……。

console では、

ActionView::Template::Error (undefined method `model_name' for {}:Hash):
1: <h1>Create User</h1>
2: <p>please additional your information.</p>
3: <%= form_for @user do |f| %>
4: <%= f.label :name, 'Name' %>
5: <%= f.text_field :name %>
6: <%= f.label :username, 'Name' %>
app/views/users/new.html.erb:3:in `_app_views_users_new_html_erb__1488396736_9
3375700' 

 と表示されます。

 

タイトルにエラーの原因と解決理由をサラッと書いてしまっていますが、エラーの原因は model のカラム名予約語を使っていたことでした。

生徒個人を区別する情報として、在籍クラスを持たせることを考えていたのですが、何も考えずにカラム名を "class" にしていました。

このエラーを解決するために数日を無駄にしたのは内緒です。笑

 

 

まとめ:

 

まとめるほどでもないですが…

rails は scaffold など、細かく便利に設定してくれる頼りになる存在な感じがしますが、エラーの括り方はだいぶ雑だなーという印象を受けました…

もう少し細かくエラーの内容を知れるといいですね!(エラー出さないのが先決)