じろう

2019年11月02日に参加

学習履歴詳細

[卒業制作]userとlogsを一対多に。user-logs-(dones, knowledges, todos)の親-子-孫関係に。userと紐付けたことでedit, createがうまくいかなくなったのを解消するのに追われる。

やったこと

userとlogsを一対多で関連付けた
current_user.logs.buildと書き換えた
それに伴って色々なところが動かなくなったので直した
stack overflowの英語で書かれてるようなQAも読んだ
binding.pryでたくさん止めた
ストロングパラメータ、require、permitについて調べた
親子孫なモデルの更新について調べた

わかったこと

ネストしたモデルの更新では、子モデルのidを持たせて同じものが既に存在するかどうか調べないとupdateではなくinsertで新しく作成されてしまう
エラーメッセージにほとんど書かれてる。idがないよと言われてたけどそんなことないだろと思いこんで別のところをいじってた
一対一と一対多ではbuildの書き方がどうやら違う
f.fields_for :dones, logs.dones という書き方にしたら直った……?
hidden_fieldsでidも渡してあげたら直った
確認画面は今自分が実装してる方法よりもっと簡単に実装できる

次やること

次こそcocoonの導入
エラーメッセージをしっかり読む
cocoonの公式リファレンスを読む
いきなり導入せずサンプルアプリで試してから導入する

Rails

2020年05月08日(金)

5.0時間