はじめに
本記事では、
ActiveModel::UnknownAttributeError in FoodsController#create
というエラーについて記述します。
本日は、このエラーを解決しました。
エラーの内容
以下、画像の通りです。
内容としては、
Foodにmeal_type_idなんてものはありませんよ?
と怒っています。
attribute = 属性(Google先生より)
もっと簡単にいうと、
Foodテーブルに、meal_type_idというカラムは存在しない。ということになります。
結論
既に修正してしまったので、修正後のものになりますが、画像を添付します。
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」について
明日も頑張ります!!

