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 など、細かく便利に設定してくれる頼りになる存在な感じがしますが、エラーの括り方はだいぶ雑だなーという印象を受けました…
もう少し細かくエラーの内容を知れるといいですね!(エラー出さないのが先決)