0

我已經在路線如下:軌道鏈接到嵌套的路線不工作

resources :projects do 
    resources :schedules 
end 

我想去看演出時間表頁面。耙路線列出了這一點:

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

我有以下的其他頁面上的鏈接時間表#顯示頁面:

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

頁返回以下錯誤:

Couldn't find Schedule with id=26 

這裏有參數:

{"project_id"=>"26", 
"id"=>"48"} 

我知道這些編號存在時間表,因爲我可以在控制檯中找到它:

<Schedule id: 48, project_id: 26, created_at: "2013-11-25 19:08:00", updated_at: "2013-11-25 19:08:00"> 

爲什麼鏈接不工作?謝謝。

+0

的錯誤狀態,它不能用'id' 48 – AbM

+0

發現附表與'id' 26.你是顯示的調度實例你的編號是48,但你試圖找到一個編號爲26的時間表。你很困惑時間表和項目編號的地方。 – ksu

+0

謝謝,鏈接正在工作,但由於某種原因,現在控制器不是。我有這是我的控制器:@schedule = Schedule.find(params [:project_id],params [:schedule_id])但它給出了與上面相同的錯誤。有任何想法嗎? – Philip7899

回答

0

貌似你試圖找到使用項目的id的時間表。

我應該這樣做在你的控制器:

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

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

也可能具有IDS向後你的link_to助手。您可以嘗試使用快捷鍵:

link_to 'Schedule', [project, schedule] 

這被轉換爲project_schedule_path

+0

謝謝,鏈接正在工作,但出於某種原因,現在控制器中的顯示操作不是。我有這是我的控制器:@schedule = Schedule.find(params [:project_id],params [:schedule_id])但它給出了與上面相同的錯誤。有任何想法嗎? – Philip7899

+0

這是查找計劃的不正確方法。您正在傳遞project_id來查找時間表,並且抱怨說它找不到具有該id的時間表(項目ID)。嘗試使用我提供的代碼。 – DiegoSalazar

+0

多數民衆贊成在奇怪的,你的代碼說:'未定義的方法'發現'#日程安排:0x007f8127d61af0>' – Philip7899

1

嘗試

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

謝謝,試過了,但是這把我帶到錯誤的項目。項目ID是48,時間表是26,但正如你在控制檯中看到的那樣,這不是正確的項目。 – Philip7899