ActiveRecordのエラーにつまづいた
エラーのスクショはこちらです!
model_name is defined by Active Record. Check to make sure that you don't have an attribute or method with the same name.
これを解決すれば良さそうです。
## 何をしていたか
見ての通りですが、新規投稿関係の実装中です。そしてhttp://localhost:3000/posts/new
でこの画面の登場です。
## どんなエラーか
model_name is defined by Active Record. Check to make sure that you don't have an attribute or method with the same name.
和訳するとこうです。
model_nameはActiveRecordによって定義されます。同じ名前の属性またはメソッドがないことを確認してください。
はい。私、model_name
というカラムをpostsテーブルに用意していたわけで、エラー文そののままの通りですが、model_name
は使えんよってことです。
## 解決方法
カラム名の変更で簡単にできます。
rails db:rollback
または
rails db:rollback step数値
で対象のマイグレーションファイルを編集して
rails db:migrate
もしくは、もっとやりやすい方法として
rails g migration rename_model_name_column_to_post
class RenameRequestColumnToJobAdministrations < ActiveRecord::Migration[5.0]
def change
rename_column :posts, :model_name, :name
end
end
これでも変更できるかと。
これで解決しました。
## 参考文献