2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ActiveModel::UnknownAttributeErrorについて

Last updated at Posted at 2021-08-19

はじめに

本記事では、
ActiveModel::UnknownAttributeError in FoodsController#create
というエラーについて記述します。
本日は、このエラーを解決しました。

エラーの内容

以下、画像の通りです。

マイグレーションの名前エラー.png

内容としては、
Foodmeal_type_idなんてものはありませんよ?
と怒っています。

attribute = 属性(Google先生より)

もっと簡単にいうと、
Foodテーブルに、meal_type_idというカラムは存在しない。ということになります。

結論

既に修正してしまったので、修正後のものになりますが、画像を添付します。

マイグレーションの名前間違いエラー.png

Active Hashを使用してるカラム達に_idが抜けておりました。

修正方法は、以下の通り。

現状確認
% rails db:migrate:status
up     20210818093904  Devise create users
up     20210818095054  Create foods

今回は、一番下のものを修正したいので、

1回だけ
% rails db:rollback

これで修正できるようになりました。

class CreateFoods < ActiveRecord::Migration[6.0]
  def change
    create_table :foods do |t|
      t.integer     :meal_type_id,           null: false  #_idをつける
.
.
省略
.
.

      t.references  :user,                   null: false, foreign_key: true
      t.timestamps
    end
  end
end

オリジナルアプリなので、やや端折っております。申し訳ありません。

その後、

% rails db:migrate

これで完了です。

終わりに

やや簡単なエラー内容かもしれませんが、
エラーにぶつかったら1つ1つ理解、内容把握しアウトプットしたいと考えています。

ここからまだまだ色んなエラーに出会いますが、このスタンスは忘れずに頑張ります!

以下参考サイト
railsの「ActiveModel::UnknownAttributeError」について

明日も頑張ります!!

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?