2014-09-10 108 views
1

我在軌道上做一個維基克隆應用程序在Ruby中,我試圖摧毀一個wiki,但之後我點擊破壞鏈接,我得到這個錯誤:沒有ID錯誤找不到維基?

Couldn't find Wiki without an ID 

,它有與此代碼塊的問題

def destroy 
@wikis = Wiki.all 
@wiki = Wiki.find(params[:wiki_id]) 
@collaborator = @wiki.users.find(params[:user_id]) 
authorize @wiki 
end 

我調用delete函數的地方是在我的wiki#views文件中。鏈接如下:

<%= link_to "Delete Wiki", @wiki, method: :delete, class: 'btn btn-danger', data: { confirm: 'Are you sure you want to delete this wiki?' } %> 

回答

2

此錯誤是由以下行造成的:

@wiki = Wiki.find(params[:wiki_id]) 

params[:wiki_id]nil。所以基本上你這樣做:

@wiki = Wiki.find(nil) 

在這種情況下,find將拋出你看到的錯誤,因爲它不能與nil的ID查找記錄。

作爲每tadman的建議,嘗試改變線爲以下:

@wiki = Wiki.find(params[:id]) 
+1

它通常'PARAMS [:ID]'除了嵌套路由。 – tadman 2014-09-10 21:47:54