2017-10-19 73 views
0

在我的路由器我有两个嵌套ressources得到嵌套的ID:Rails的路线 - 如何从URI模式

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 ??? 

我的问题是:如何可以在我的maintenance_contr中访问这两个ID奥勒从URI模式http://localhost/servers/1/maintenances/1

回答

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