前提・実現したいこと
料理のレシピを管理するアプリを作っています。cookモデルを親、materialモデルを子としています。二つを紐付けてデータを登録するところまでは出来たのですが、showで表示する際にエラーが発生して詰まっています。
発生している問題・エラーメッセージ
ActiveRecord::RecordNotFound in CookController#show Couldn't find Material without an ID
該当のソースコード
controller
1def new 2 @cook = Cook.new 3 @cook.materials.build 4 @cook.works.build 5end 6 7def show 8 @cook = Cook.find(params[:id]) 9 @materials = Material.find(params[:cook_id]) 10end
haml
1= @cook.title 2= @cook.description 3= @materials.material1
material
1class CreateMaterials < ActiveRecord::Migration[5.2] 2 def change 3 create_table :materials do |t| 4 t.string :material1 5 t.string :material2 6 t.string :material3 7 t.string :material4 8 t.string :material5 9 t.string :material6 10 t.string :material7 11 t.string :material8 12 t.string :material9 13 t.string :material10 14 t.string :material11 15 t.string :material12 16 t.string :material13 17 t.string :material14 18 t.string :material15 19 t.string :material16 20 t.string :material17 21 t.string :material18 22 t.string :material19 23 t.string :material20 24 25 t.references :cook, index: true, foreign_key: true 26 27 t.timestamps 28 end 29 end 30end
試したこと
@materials = Material.find(params[:cook_id])を消すと@cookのtitleとdescriptionはちゃんと表示されます。また、@cookから直接取り出せるのではないかと思い、@cook.material1などとviewに書いてみましたがダメでした。
補足情報(FW/ツールのバージョンなど)
追加で補足していきます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/29 08:57
2020/04/29 09:02
2020/04/30 18:38
2020/05/03 10:17