解決できないような奇妙なルーティングエラーと思われるものがあります。私はRails 4.2.6を使用しており、顧客用の足場を生成しています。私は顧客のリストを見ることができるが、私は顧客を編集するとき、私はすべてが非常に多く、私はこれに私のルートを変更でしたが、足場が作成したものですルーティングエラーの更新/レコードの作成
No route matches [POST] "/customers/49"
エラーを取得:
resources :customers do
resources :comments, only: [:new, :create, :edit, :update]
end
でも、足場のデフォルトでも同じことを試みましたが、同じエラーが表示されます。
これらは顧客のための経路である:「編集」ページのため
customers GET /customers(.:format) customers#index
POST /customers(.:format) customers#create
new_customer GET /customers/new(.:format) customers#new
edit_customer GET /customers/:id/edit(.:format) customers#edit
customer GET /customers/:id(.:format) customers#show
PATCH /customers/:id(.:format) customers#update
PUT /customers/:id(.:format) customers#update
DELETE /customers/:id(.:format) customers#destroy
生成されたHTMLは、それが「新しい」ページ
ポスト要求<form class="edit_customer" id="edit_customer_49" action="/customers/49" accept-charset="UTF-8" method="post">
と同じであることを示しています
<form class="new_customer" id="new_customer" action="/customers" accept-charset="UTF-8" method="post">
ほとんどすべてのものが足場が作り出したものなので、なぜ私が何を得ているのか分かりません彼は誤りです。なぜ生成されたHTMLがPOSTを使用しているのですか?
Rails初心者を助けてくれてありがとう。
UPDATE さて、私のモデルでは、私は私がこれを持って私の編集/新しいフォームで
CUSTOMER_TYPE = ["A", "B"]
を持っている:
<%= f.label :customer_type %>
<%= f.select :customer_type, Customer::CUSTOMER_TYPE, {include_blank: true}, {index: nil} %>
私は私のフォームのうち、上記の行を取る場合は、編集と新しいフォームはともにエラーなく動作します!
これはPOSTフォームですが、このメソッドはPATCHとして渡される必要があります。あなたの生成されたHTMLは ''のような行を持っていますか? – GoGoCarl
はい@GoGoCarl、私はそれを参照してください。 UTF-8 "method =" post "> ' – mack
マックはそれを理解しましたか? – bkunzi01