У меня есть два вложенных ресурса, которые оба используют родительский контроллер.Как я могу изменить имена параметров, чтобы вместо params[:parent_id]
и params[:id]
я получил params[:parent_id]
и params[:child_id]
?В противном случае нет никакого способа определить, с каким ребенком я имею дело.
На данный момент я картирую каждый отдельный дочерний маршрут match 'child/:child_id' => 'parent#show'
, но это нарушает почти все правила СУХОГО, поскольку у меня есть около 5 таких маршрутов(и многое другое).
Вот пример моих маршрутов:
resources :parent do
resources :child1, :controller => :parent
resources :child2, :controller => :parent
end
Вот что я хотел бы сделать
resources :parent do
resources :child1, :controller => :parent, :key => :child1_id
resources :child2, :controller => :parent, :key => :child2_id
end
Обновление
Я просто собираюсь повторить маршруты, чтобы родительский элемент стал вложенным под каждым дочерним элементом.Первоначально это не было сделано по той причине, что бывший коллега, написавший их, не знал, что делает.
Этот результат будет выглядеть примерно так:
resources :child1 do
resources :parent
end
resources :child2 do
resources :parent
end