0

次のようにネストされたルートを設定しています。

  resources :clients do
    resources :contacts
  end

私の更新アクションフォームは次のとおりです。

= form_for @contact, :url => client_contacts_path(@contact.client), :html => { :multipart => true } do |f|

ただし、保存すると次のエラーが発生します。

No route matches [PUT] "/clients/3/contacts"

ルートを試していない理由がよくわかりません: /clients/3/contacts/:id

フォームに何が欠けていますか?

4

1 に答える 1

2

form_for呼び出しを次のように変更してみてください。

= form_for [@client, @contact], :html => { :multipart => true } do |f|

Rails は、必要なものをすべて自分で見つけ出します。

  • @contact が新しいレコードの場合、/clients/:client_id/contacts/new urlが生成されます
  • @contact が既に存在する場合、/clients/:client_id/contacts/:id/edit urlが生成されます

form_forに関する詳細情報。

于 2013-03-30T03:09:31.770 に答える