我正在尝试销毁属于类别模型的链接(通过我的浏览器)。我可以成功删除具有id
of1
和category_id
of的链接1
,但是当我尝试删除具有任何其他 id 的链接时,我会遇到:
ActiveRecord::RecordNotFound in LinksController#destroy
Couldn't find Link with id=1 [WHERE "links"."category_id" = 1]
非常令人沮丧,因为我不想删除 id 为 1 的链接!但是我在请求参数中看到它总是试图删除带有 的链接"category_id"=>"1",
"id"=>"1"}
,无论我点击什么链接。查看我的开发数据库中的链接确认它们存在并且 ID 不是 1...
这是 LinksController#destroy 的代码:
class LinksController < ApplicationController
def destroy
@category = Category.find(params[:id])
@link = @category.links.find(params[:id])
@link.destroy
redirect_to category_url(@category)
end
这是我试图删除这些讨厌的链接的视图的代码:
<h1><%= @category.category %></h1>
<p><%= @category.description %></p>
<ul>
<% @category.links.each do |link| %>
<li>
<%= link_to link.title, link.url %> |
<%= link_to "delete", category_link_path(@category), :method => :delete %>
</li>
<% end %>
编辑:添加参数
{"_method"=>"delete",
"authenticity_token"=>"[removed]",
"category_id"=>"1",
"id"=>"1"}
编辑:添加 config/routes.rb:
LinkManager::Application.routes.draw do
resources :categories do
resources :links, only: [:create, :destroy]
end
root :to => 'categories#index'
我在看什么?有什么我可以尝试的吗?