Rails Routes - Как получить вложенные идентификаторы из шаблона URI

В моем роутере я вложил два ресурса:

resources :servers do
  member do
    resources :maintenances
  end
end

что приводит к следующему шаблону URI:

         maintenance GET    /servers/:id/maintenances/:id(.:format)      maintenances#show

В действии show maintenance_controller я хочу получить такие идентификаторы, как:

@server = Server.find_by(params[:id])
@maintenance = Maintenance.find_by ???

Мой вопрос: как я могу получить доступ к этим двум идентификаторам в моем maintenance_controller из шаблона URI http://localhost/servers/1/maintenances/1


person Gordon White    schedule 19.10.2017    source источник


Ответы (1)


Попробуй это

resources :servers do
  resources :maintenances
end

Затем вы можете получить доступ к вложенному ресурсу следующим образом

server_maintenance GET    /servers/:server_id/maintenances/:id(.:format)

В вашем контроллере

@server = Server.find(params[:server_id])
@maintenance = Maintenance.find(params[:id])

Полная документация по маршрутизации в рельсах находится в официальных документах.

person rogelio    schedule 19.10.2017