<% @comments.each_with_index do |comment,index| %>$ <tr id="comment-no-<%= comment.id.to_s %>">$ <%= form_with model: comment, method: "patch", url: user_comment_path(user_id: @user.id, id: comment.id) do |f| %>$ <td class=""><%= index + 1 %></td>$ <td class='content'><%= coment.content %></td>$ <td class='updated_at'><span class="updated-text"><%= comment.updated_at.to_s.split(" +").first %></span><span class="update-btn hidden"><%= f.submit "update" %></span><span class="update-cancel-btn btn hidden"><a href="#">キャンセル</a></span></td>$ <% end %>$
これとは別にJQueryを使って[@class="content"] の中身をクリックしたらフォームが出るようにしています。
上記のコードを使ってコメントが一覧で出てきて、コメントを編集できるような画面を作っています。
form_with に method: "patch" を指定しています。
しかし、なぜか最初の2つだけはPOSTメソッドになり、残りはPATCHメソッドとなります。
目的としては全てPATCHメソッドにしたいのですが、なぜかそうなってしまいます。
生成されたHTMLはおかしな挙動を示す最初の二つは以下の
<form action="/users/1/comment/14" accept-charset="UTF-8" data-remote="true" method="post"></form> <input type="hidden" name="_method" value="nT3pkbEBkVVzHNMAcKEMRruUYSKCVbpZYORZDEneiwKdUDDfLbgW8wGJvrA2VCWYnG/11VKg3iCupOYDT756bA=="> <input type="hidden" name="authenticity_token" value="lscYvB3twk5LPUM8HHsGMCZV9p7QKsg3SB8uxBLNZi2hmDrqfkQkYn0XoLrsT82Sm+HntgHMS1j03k4yL8kXNg=="> <td class="">2</td> <td class="content"><textarea style="width:100%;" name="comment[content]" id="comment-content"></textarea></td> <td class=""><span class="updated-text hidden">2020-04-29 14:58:59</span><span class="update-btn"><input type="submit" name="commit" value="update" data-disable-with="update"></span><span class="update-cancel-btn btn"><a href="#">キャンセル</a></span></td>
ようになり、想定通りの最初の2つ以降のカラムは
<form action="/users/1/comment/20" accept-charset="UTF-8" data-remote="true" method="post"></form> <input type="hidden" name="_method" value="patch"> <input type="hidden" name="authenticity_token" value="oURqI3lownswY5L+UcAYSq8hAcn2yh7GJ32wNWa+WkbK1TeCY/cSlbckwC11wCupWGK5a+zKcsg73t1pITkzyA=="> <td class="">7</td> <td class="content"><textarea style="width:100%;" name="comment[content]" id="comment-content"></textarea></td> <td class=""><span class="updated-text hidden">2020-04-29 14:58:59</span><span class="update-btn"><input type="submit" name="commit" value="update" data-disable-with="update"></span><span class="update-cancel-btn btn"><a href="#">キャンセル</a></span></td>
となります。
<input type="hidden" name="_method" value="patch">
の有無で挙動が変わり、PATCHを想定していても最初の2つはPOSTメソッドになり思った挙動と違っているようです。
なぜこうなるのかが分からないので、諸先輩方、ご教授いただけましたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。