rails链接到嵌套路由不起作用

时间:2013-11-25 20:33:04

标签: ruby-on-rails routing rails-routing nested-resources nested-routes

我在路线中有以下内容:

resources :projects do
  resources :schedules
end

我正在尝试进入节目时间表页面。耙路线列出了这个:

project_schedule GET  /projects/:project_id/schedules/:id(.:format)  schedules#show

我在另一页上有以下链接到时间表#show page:

<%= link_to 'Show Schedule', project_schedule_path(project.id, schedule.id) %>

该页面返回以下错误:

Couldn't find Schedule with id=26

以下是参数:

{"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">

为什么链接不起作用?感谢。

2 个答案:

答案 0 :(得分:1)

尝试

  <%= link_to 'Show Schedule', project_schedule_path(schedule.id, project.id) %>

答案 1 :(得分:1)

看起来您正在尝试使用项目的ID来查找计划。

我会在您的控制器中执行此操作:

# find the parent model first 
@project = Project.find params[:project_id]

# now get its associated schedule:
@schedule = @project.schedules.find params[:id]

您也可能在link_to帮助器中向后退。您可以尝试使用快捷方式:

link_to 'Schedule', [project, schedule]

转换为project_schedule_path