1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

No route matches [POST] エラー解決方法 form_with namespace使用時

Posted at

前提

ECサイトを作成しています。 商品登録ページで以下のようなルーティングエラーが発生しました。

今回、namespaceを使い管理者側(admin)、顧客側でルーティングをわけていました。
スクリーンショット 2021-07-15 17.32.22.png

エラーの内容

![スクリーンショット 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)

createアクションはあるし、POSTになっている。
スクリーンショット 2021-07-15 17.37.03.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の指定は不要という認識でいました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?