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

Rails Routes - How to get nested IDs from URI Pattern

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

resources :servers do
  member do
    resources :maintenances
  end
end

这导致 URI 模式如下:

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

在 maintenance_controller 的表演动作中,我想获得这些 ID,例如:

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

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

访问我 maintenance_controller 中的这两个 ID

试试这个

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

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