2013-03-30 3 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/контактов /: идентификатор

Что мне не хватает в моей форме?

ответ

2

Попробуйте изменить form_for вызов:

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

Rails будет выяснить все это нужно им самостоятельно:

  • когда @ Контакт новый рекорд он будет генерировать /клиенты /: client_id/contacts/new url
  • когда @contact уже существует, он будет генерировать /clients /: client_id/contacts /: id/редактировать url

Дополнительная информация о form_for.

Смежные вопросы