カテゴリ モデルに属するリンクを (ブラウザから) 破棄しようとしています。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"}
しかし、どのリンクをクリックしても、常に を使用してリンクを削除しようとしているリクエスト パラメータが表示されます。私の開発データベースのリンクを見ると、それらが存在し、1 以外の ID を持っていることが確認されます...
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'
私は何を見落としていますか?何か試すことはできますか?