前提・実現したいこと
現在「現場で使えるRuby on Rails5」を使ってRailsを勉強しており、そこでTodoリストを作成しております。
そこで、削除ボタンを作成してところでうまく削除ボタンを動作しません。
削除ボタン押すと、削除ではなく、参照してしまいます。
なのでうまく削除ボタンが動作するようにしたいです。
発生している問題・エラーメッセージ
link_toを使うとうまく削除ボタンが動作せず、showアクションを読み込んでします。。
button_toを使うとうまく削除ボタンが動作します。しかし、アラートは表示されません。
しっかりとmethod: :deleteもつけておりますし、destroyアクションも間違ってないと思います。
エラー等は起きておりません。
該当のソースコード
index.html.slim
Rails
1h1 タスク一覧 2 3= link_to "新規登録", new_task_path, class: 'btn btn-primary' 4 5.mb-3 6table.table.table-hover 7 thead.thead-default 8 tr 9 th = Task.human_attribute_name(:name) 10 th = Task.human_attribute_name(:created_at) 11 th 12 tbody 13 - @tasks.each do |task| 14 tr 15 td = link_to task.name, task_path(task) 16 td = task.created_at 17 td 18 = link_to "編集", edit_task_path(task), class: 'btn btn-primary mr-3' 19 = link_to "削除", task , method: :delete, data: {confirm: "タスク「#{task.name}」を削除します。よろしいですか?"},class: 'btn btn-danger'
tasks_controller.rb
class TasksController < ApplicationController def index @tasks = Task.all end def show @task = Task.find(params[:id]) end def new @task = Task.new end def edit @task = Task.find(params[:id]) end def create task = Task.new(task_params) task.save! redirect_to tasks_url, notice: "タスク「#{task.name}」を登録しました。" end def update task = Task.find(params[:id]) task.update!(task_params) redirect_to task_url, notice: "タスク「#{task.name}」を更新しました。" end def destroy task = Task.find(params[:id]) task.destroy redirect_to tasks_url, notice: "タスク「#{task.name} 」を削除しました。" end private def task_params params.require(:task).permit(:name, :description) end end
試したこと
data: {confirm: "タスク「#{task.name}」を削除します。よろしいですか?"}
のjavascriptがうまく動作してないのかなと思い、そこだけ削除してやってみましたが、変わらず削除ではなく、参照してしまいます。
エラー等も起きてないので何をすればいいのか分かりません。
どうかご教示いただけないでしょうか?
宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
Ruby 3.0.2
Rails 6.1.4.1
yarn 1.22.10

回答1件
あなたの回答
tips
プレビュー