我正在使用ruby on rails创建一个wiki克隆应用程序,我正在尝试销毁一个wiki,但是在点击destroy链接后我收到此错误:
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
我在我的wiki#views文件中调用delete函数。链接如下所示:
<%= link_to "Delete Wiki", @wiki, method: :delete, class: 'btn btn-danger', data: { confirm: 'Are you sure you want to delete this wiki?' } %>
答案 0 :(得分:2)
此错误由以下行引起:
@wiki = Wiki.find(params[:wiki_id])
params[:wiki_id]
是nil
。所以基本上你是这样做的:
@wiki = Wiki.find(nil)
在这种情况下,find
会抛出您看到的错误,因为它无法找到ID为nil
的记录。
根据tadman的建议,请尝试将该行更改为以下内容:
@wiki = Wiki.find(params[:id])