投稿記事の削除機能を作っているのですが、destroyメソッドが正しく呼び出されず手詰まりしてしまいました。
Better_errorsのRequest parametersを確認したところ、"id"=>"id"
となっており、記事IDが正しく入力されておりませんでした。
(想定では/config/"指定した記事ID"/info_destroyとなる)
{"_method"=>"post", "authenticity_token"=>"長いアルファベットの列", "controller"=>"config", "action"=>"info_destroy", "id"=>"id"}
###やりたいこと
viewから記事IDをcontrollerに渡してinfo_destroyメソッドを呼び出したい。
###ソースコード
<!-- info_console.html.erb --> <% @infoConsolePosts.each do |information_console| %> <div class="card"> <div class="card-header"> <h5><%= information_console.page_title %></h5> </div> <div class="card-body"> <p class="text-muted">ページID:<%= information_console.page_id %></p> <a class="btn" type="submit" href="#" data-toggle="modal" data-target="#infoDestroy">削除</a> <a class="btn" type="submit" href="#" data-toggle="modal" data-target="#infoEdit">編集</a> </div> </div> <% end %> <div class="modal fade" id="infoDestroy" tabindex="-1" role="dialog" aria-labelledby="infoDestroyLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="infoDestroyLabel">記事を削除する</h5> <button type="button" class="close" data-dismiss="modal" aria-label="閉じる"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <p>記事を削除します、よろしいですか?</p> <strong class="text-danger">注意:この操作は取り消せません</strong> </div> <div class="modal-footer"> <button class="btn btn-secondary" data-dismiss="modal">閉じる</button> <a type="submit"><%= link_to("削除", "/config/#{:id}/info_destroy", method: "post", class: "btn") %></a> </div> </div> </div> </div>
#config_controller.rb class ConfigController < ApplicationController def info_console #お知らせ一覧に表示するテーブル情報を取得する @infoConsolePosts = InfoTable.all.order(page_id: :desc) end def info_destroy @destroyPage = InfoTable.find_by(page_id: params[:id]) @destroyPage.destroy redirect_to("/config/info_console", notice: "destroy!") end end
#routes.rb Rails.application.routes.draw do get "config/info_console" => "config#info_console" post "config/:id/info_destroy" => "config#info_destroy" end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。