2011-07-29 76 views
1

我很新的Rails,我卡住得到一個命名路由正常工作。有很多類似的問題,但我認爲我有一個不同的問題。這是我第一次使用帶參數的命名路線。Rails 3命名路由 - 無路由匹配

首先,這是Rails 3.0.9。我有在routes.rb中的條目:

get '/tasklist/:id' => 'projects#task_list' 

運行rake路線顯示線條:

GET /tasklist/:id(.:format) {:controller=>"projects", :action=>"task_list"} 

我的觀點有以下代碼:

<%= link_to image_tag("icons/add.png"), tasklist_path, :id => project.id %> 

但顯示時查看顯示錯誤:

No route matches {:controller=>"projects", :action=>"task_list"} 
... 
Extracted source (around line #39): 
39: <td><%= link_to image_tag("icons/add.png"), tasklist_path, :id => project.id %></td> 

我只是看不到問題出在哪裏。請注意,訪問URL http://localhost:3000/tasklist/2看起來工作得很好。有任何想法嗎?

回答

2

嘗試將:as => "tasklist"添加到您的路線。

+1

哦,它應該是'tasklist_path(project.id)'。您將路由定義爲需要:id,並且不會將它傳遞給路徑幫助程序 – dogenpunk

+0

好的 - 剛剛進行了此操作:<%= link_to image_tag(「icons/add.png」),tasklist_path,:id => project.id,:as =>「tasklist」%> - 但不幸的是我仍然得到相同的錯誤 – asc99c

+0

我試圖把id放入tasklist_path,但是這給了我一個不同的錯誤 - format => 1 ??:沒有路由匹配{:controller =>「projects」,:action =>「task_list」,:format => 1} – asc99c