前提
ECサイトを作成しています。 商品登録ページで以下のようなルーティングエラーが発生しました。今回、namespaceを使い管理者側(admin)、顧客側でルーティングをわけていました。
エラーの内容
![スクリーンショット 2021-07-15 17.35.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/06723793-d479-eafa-0b67-df27ce2e72c0.png)解決方法
<%= 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の指定は不要という認識でいました。