はじめに
本記事では、
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」について
明日も頑張ります!!