Railsでフォームの遷移先が思ったようにいかなく、つまずいたため備忘録も兼ねて書かせていただきます。
##問題点
編集データをcarts#update
に届けく、以下のようにしてみたが
carts/edit.html.erb
<%= form_with(model: @cart, local: true ) do |f| %>
<div>
<%= f.label :quantity, "購入数" %>
<%= f.number_field :quantity %>
</div>
<%= f.submit "更新", class: "btn" %>
<% end %>
この遷移先が、なぜかcart_product_path
になってしまう。
また、Did you mean? で言われている edit_product_path
も希望する遷移先とは違う。
##改善方法
form_with
のオプションで、url: cart_path
と指定するとうまく遷移するようになりました。
carts_add POST /carts/add(.:format) carts#add
carts GET /carts(.:format) carts#index
edit_cart GET /carts/:id/edit(.:format) carts#edit
cart PATCH /carts/:id(.:format) carts#update (#遷移先にしたい)
PUT /carts/:id(.:format) carts#update
DELETE /carts/:id(.:format) carts#destroy
carts/edit.html.erb
<%= form_with(model: @cart, url: cart_path, local: true ) do |f| %>
<div>
<%= f.label :quantity, "購入数" %>
<%= f.number_field :quantity %>
</div>
<%= f.submit "更新", class: "btn" %>
<% end %>