Если вы введете rake routes
в своей консоли, вы получите:
client_projects GET /clients/:client_id/projects(.:format) projects#index
POST /clients/:client_id/projects(.:format) projects#create
new_client_project GET /clients/:client_id/projects/new(.:format) projects#new
edit_client_project GET /clients/:client_id/projects/:id/edit(.:format) projects#edit
client_project GET /clients/:client_id/projects/:id(.:format) projects#show
PATCH /clients/:client_id/projects/:id(.:format) projects#update
PUT /clients/:client_id/projects/:id(.:format) projects#update
DELETE /clients/:client_id/projects/:id(.:format) projects#destroy
client_client_infos POST /clients/:client_id/client_infos(.:format) client_infos#create
new_client_client_info GET /clients/:client_id/client_infos/new(.:format) client_infos#new
clients GET /clients(.:format) clients#index
POST /clients(.:format) clients#create
new_client GET /clients/new(.:format) clients#new
edit_client GET /clients/:id/edit(.:format) clients#edit
client GET /clients/:id(.:format) clients#show
PATCH /clients/:id(.:format) clients#update
PUT /clients/:id(.:format) clients#update
DELETE /clients/:id(.:format) clients#destroy
Как видите, у вас нет пути client_infos
, потому что client_infos
вложено в clients
. Вместо этого у вас есть client_client_infos
- что вы должны делать, учитывая ваш routes.rb
. Вы также можете сделать это следующим образом (как описано в 2.9 Создание путей и URL-адресов из объектов ):
<%= form_for [@client, @client_info] do |f| %>
И Rails определит, что вы хотите использовать client_client_infos
именованный маршрут.