2016-05-13 81 views
0

我得到我的Rails應用程序導航時出現以下錯誤路由: 沒有路由匹配軌道4:用諧音

{:action=>"startnew", :controller=>"tickets", :ticket_id=>4} missing required keys: [:id] 

的問題是,我有一個路線:

post 'tickets/:id/startnew' => 'tickets#startnew', as: :start_new 

這工作正常,當我導航到的URL http://localhost:3000/tickets 但是,當我加載URL http://localhost:3000/tickets?id=4,在我的情況下需要工作,因爲我呈現門票#列表和門票#顯示兩個部分門票#索引,其中的錯誤ab發生。 當我點擊不同頁面上的鏈接時,會加載票據號索引,並且只有在URL中有參數(http://localhost:3000/tickets?id=4)時纔會呈現票據#show。

在顯示我有這部分,這會導致問題:

<%= link_to 'Book time', start_new_path(ticket_id: @ticket.id), method: :post, class: "button info block-shadow-info text-shadow", remote: true %> 

能否請你給我一個提示!

+1

變化':ticket_id'到':id'中的參數,或者路由改變爲 '交 '票/:TICKET_ID/startnew'=> '票#startnew',如::start_new' – jjm

+0

你可以運行'rake routes | grep start'並分享結果? – Anand

回答

2

沒有路由匹配{:行動=> 「startnew」:控制器=> 「入場券」, :TICKET_ID => 4}缺少必需的鍵:[:ID]

您有

post 'tickets/:id/startnew' => 'tickets#startnew', as: :start_new 

這意味着它預計:id作爲一個關鍵,但你要發送:ticket_id。改變你的鏈接到下面應該工作。

<%= link_to 'Book time', start_new_path(id: @ticket.id), method: :post, class: "button info block-shadow-info text-shadow", remote: true %>