前提
ECサイトを作成しています。
商品登録ページで以下のようなルーティングエラーが発生しました。
今回、namespaceを使い管理者側(admin)、顧客側でルーティングをわけていました。
エラーの内容
解決方法
<%= form_with model:@item, local:true do |f| %>
を、以下の通り書き換え。
<%= form_with model:@item,url:admin_items_path,local:true do |f| %>
データが、form_withの判断で/itemsに送られていました。
namespaceを使っており、本来飛ばすべき先は、admin_items_pathでした。
エラーの原因はform_with namespace使用時には注意!
<%= form_with model:@item, local:true do |f| %>
商品の新規登録画面でform_withを用いてフォームを作成していました。
<%= form_with model:@item, url:'admin_items_path', local:true do |f| %>
このようにフォームで入力したデータの送信先をurlで指定することもできるというのは知っていましたが、
resoucesを使用してルーティングしていたので、urlの指定は不要という認識でいました。