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 回答