Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轨道链接到嵌套管线不工作_Ruby On Rails_Routing_Rails Routing_Nested Resources_Nested Routes - Fatal编程技术网

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]