🚀

form_withの書き方について

2024/03/12に公開

内容

PF作成の時にメンターさんに教えて頂いたことをいつもで引き出せるように書いておこうと思います。
今更ながら、フォームの書き方を知ったので、書いておきます。

_form.html.erb

<%= form_with(model: [study, study_review, review_comment], remote: true) do |f| %>
    :
    :
  <span><%= f.submit "送信" %></span>
<% end %>

form_with メソッドを使用して、モデルを指定する事で、そのモデルに関連づけられたフォームを生成できます。

関連づいたモデルを元にパスを自動生成してくれます。
モデルが"Post"の場合や"Patch"の場合で、それぞれに合ったパスを自動生成してくれます。

今回、studyに紐づいた、study_reviewの、review_comment用の"form"を作成したかったので、3つのモデル(study, study_review, review_comment)を指定してあげれば、自動で適したパスを生成してくれます。

あとは、remote: true と記載すれば、
フォームの送信を非同期で行えるようになります。

まとめ

作成したいパスに応じて、モデルを指定してあげる必要があるという事を今更ながら知った話です。

Discussion