Rails路由 - 如何从URI模式获取嵌套ID

时间:2017-10-19 13:58:21

标签: ruby-on-rails nested-routes

在我的路由器中,我嵌套了两个资源:

resources :servers do
  member do
    resources :maintenances
  end
end

导致URI模式如下:

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

在maintenance_controller的show动作中,我希望获得以下ID:

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

我的问题是:如何从URI模式http://localhost/servers/1/maintenances/1

中访问maintenance_controller中的这两个ID

1 个答案:

答案 0 :(得分:2)

试试这个

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])

有关路由路由的完整文档位于official docs