LoginSignup
0
0

More than 1 year has passed since last update.

ActiveRecord::DengerousAttributeError in ~~に困ったお話...(model_nameはカラム名にしてはいけない!)

Last updated at Posted at 2021-11-12

ActiveRecordのエラーにつまづいた

エラーのスクショはこちらです!

スクリーンショット 2021-11-08 23.01.11.png

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
db/migrate/20XXXXXXXXXXX_rename_model_name_column_to_posts.rb
class RenameRequestColumnToJobAdministrations < ActiveRecord::Migration[5.0]
  def change
    rename_column :posts, :model_name, :name
  end
end

これでも変更できるかと。

これで解決しました。

 参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0