Milky_English
@Milky_English

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Rails】destroyアクションができません;;

解決したいこと

現在、Ruby on Railsを勉強しており、ウェブアプリケーションを作成しています。
destroyアクションが動かないので、解決策をご教示いただけると助かります;;

発生している問題・エラー

エラーメッセージが出ているわけではなく、
destroyアクションに繋がるはずの「削除」リンクを押しても、全く動かない状態です。

投稿の削除もされず、リダイレクトもされません;;

routes.rb

delete 'lists/:id' => 'lists#destroy', as: 'destroy_list'

lists_controller.rb

  def destroy
    list = List.find(params[:id])
    list.destroy
    redirect_to '/lists'
  end

show.html.erb

<%= link_to "削除", destroy_list_path(@list.id), method: :delete %>

自分で試したこと

routeのdelete部分をpostに変えたり、

show.html.erbの 
destroy_list_path(@list.id) を 
"/lists/#{@list.id}" に変えたりしましたが、同じ状況でした。

Rails 7.0.5
ruby 3.1.2p20

何か他に必要な情報があればご教示ください;;
何卒、よろしくお願いいたします、、、

0

1Answer

routeを以下のようにし、
post "lists/:id/destroy" => "lists#destroy"
get "lists/:id/destroy" => "lists#destroy"

show.html.erbを以下のようにしたところ、
<%= link_to("削除", "/lists/#{@list.id}/destroy", {method: "post"})%>

なんとかなったので、これでよしとします😂

0Like

Comments

  1. link_toではなくbutton_toを代わりに使うとうまくいきませんか?
    postに変更しなくても

  2. @Milky_English

    Questioner

    ありがとうございます!!試してみます!!!

Your answer might help someone💌