2011-12-10 35 views
2

我遇到了一些Ruby on Rails代碼的問題。我有嵌套資源的數據結構(列表has_many任務和任務belongs_to列表)。在我的List.show頁,我有下面的代碼行:Ruby on Rails link_to指向索引而不是顯示

<td><%= link_to 'Show Task', list_tasks_path(@list, task) %></td> 

的想法是,這個頁面將鏈接到一個「秀」頁面,在這裏,我可以查看單個任務的細節。我想要的網址基本上是

/lists/:list_id/tasks/:task_id 

的問題是,上面的代碼,我向

/lists/:list_id/tasks.task_id 

任務的索引頁上。我如何告訴Rails將我發送到展示頁面?

我試着添加:action => show和:controller => tasks,以及使用show_list_tasks_path(@list,task)。我也知道結構本身就在那裏,因爲如果手動輸入/ lists /:list_id/tasks /:task_id,我的演示頁面可以正常工作。

任何幫助表示讚賞。謝謝!

-sum

+0

你的路線是什麼樣的? 'list_task_path'做什麼(而不是'list_tasks_path')? –

回答

2

這裏的問題是,你正在使用​​時,你應該使用list_task_path

如您所知,​​方法將生成一個到index動作的URL,並將使第二個參數成爲此請求的格式。

欲瞭解更多信息,請閱讀Routing Guide

+0

感謝您的幫助!另外,感謝參考網站。 –

+0

'rake routes'的輸出非常有用。 – d11wtq

2

時指定此網址更簡單的方法是

<%= link_to 'Show Task', [@list, task] %> 

你也可以做list_task_path(@list, task)(通知任務代替任務)。

運行rake routes查看rails爲路線生成的確切名稱。