Ruby on rails 轨道链接到嵌套管线不工作
我的路线如下:Ruby on rails 轨道链接到嵌套管线不工作,ruby-on-rails,routing,rails-routing,nested-resources,nested-routes,Ruby On Rails,Routing,Rails Routing,Nested Resources,Nested Routes,我的路线如下: resources :projects do resources :schedules end 我正试着去看演出时间表页面。Rake routes列出了以下内容: project_schedule GET /projects/:project_id/schedules/:id(.:format) schedules#show 我在另一个页面上有以下链接,链接到日程安排#显示页面: <%= link_to 'Show Schedule', project_sche
resources :projects do
resources :schedules
end
我正试着去看演出时间表页面。Rake routes列出了以下内容:
project_schedule GET /projects/:project_id/schedules/:id(.:format) schedules#show
我在另一个页面上有以下链接,链接到日程安排#显示页面:
<%= link_to 'Show Schedule', project_schedule_path(project.id, schedule.id) %>
以下是参数:
{"project_id"=>"26",
"id"=>"48"}
我知道存在具有这些id的计划,因为我可以在控制台中找到它:
<Schedule id: 48, project_id: 26, created_at: "2013-11-25 19:08:00", updated_at: "2013-11-25 19:08:00">
为什么链接不起作用?谢谢。试试看
<%= link_to 'Show Schedule', project_schedule_path(schedule.id, project.id) %>
看起来您正在尝试使用项目id查找计划 我会在您的控制器中执行此操作:
# find the parent model first
@project = Project.find params[:project_id]
# now get its associated schedule:
@schedule = @project.schedules.find params[:id]
您还可以在指向帮助器的链接中反向使用ID。您可以尝试使用快捷方式:
link_to 'Schedule', [project, schedule]
转换为项目计划路径的错误声明它找不到id为
26的计划。您正在显示id为48的计划实例。您的计划id为48。但您尝试查找id为26的计划。您混淆了计划,项目id在某处。谢谢,链接正在工作,但由于某些原因,控制器现在不工作。这是我的控制器:@schedule=schedule.find(params[:project\u id],params[:schedule\u id]),但它给出的错误与上面相同。有什么想法吗?谢谢,我试过了,但这让我选错了项目。项目id为48,日程安排为26,但正如您在控制台中看到的,这不是正确的项目。谢谢,链接正在工作,但由于某些原因,现在控制器中的显示操作没有工作。这是我的控制器:@schedule=schedule.find(params[:project\u id],params[:schedule\u id]),但它给出的错误与上面相同。有什么想法吗?这是一个错误的方式来寻找时间表。您正在传递项目id以查找计划,它抱怨无法找到具有该id(项目id)的计划。试着使用我提供的代码。这很奇怪,你的代码上写着:'未定义的方法'find'for#',哪一行抛出了这个错误?好像你打错了什么东西。你复制/粘贴代码了吗?弄明白了。谢谢!
link_to 'Schedule', [project, schedule]