2013-03-30 51 views
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" 

我不太清楚爲什麼不嘗試的路徑:/客戶/ 3 /聯繫人/:ID

我從表格中錯過了什麼?

回答

2

試圖將的form_for電話更改爲:

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

Rails會找出所有需要它通過它的自我:

  • 時@contact是一個新的記錄它會產生/客戶端/:client_id/contacts/new url
  • 當@contact已經存在時,它會生成/clients /:client_id/contacts /:id /編輯網址

有關更多信息form_for