Вы также должны определить компанию. Если вы напишите rake routes
, вы увидите, что у вас нет order_comments_path
из-за его двойного вложения, поэтому вы увидите что-то вроде company_order_commments_path
, которое принимает минимум два параметра: company_id
и order_id
. Поэтому, если вы действительно хотите использовать этот трехуровневый ресурс nester, вам нужно добавить переменную @company
в путь формы. Как:
<%= form_for([@company, @order, @order.comments.build] do |f| %>
Но в большинстве случаев бесполезно определять и company
, и order
, чтобы идентифицировать order
, поэтому другой вариант, который может быть лучше добавить отдельно другой маршрут для orders
и comments
, и это имеет смысл.
В твои маршруты.рб
...
resources :orders do
resources :comments
end
...
Таким образом, вы можете манипулировать orders
без указания company
. Также в самых общих случаях вы не получаете какого-либо важного преимущества, определяя вложенные маршруты 3 уровня.