まえがき
ここでは、RubyonRails6を使用して、投稿内容を 編集(内容の消去) を行う忘却録を記録します。
以前の投稿で 編集機能の実装 を行いました。編集機能の実装はそちらで記録しているので確認されたい方は、そちらでご確認ください。
投稿された内容を"消去" する
この投稿を実装するためには、アクション に データの消去(クリック)・投稿一覧への転送 を行います。
routes の設定
routes に deleteアクション を作成します。
form/:id/delete で、消去したいidのURLを特定させています。
また、データベースを変更する場合はroutes上で "get" ではなく "post" で設定します。
・
・
・
post "form/:id/delete" => "form#delete"
View へのリンク設定
・
・
・
<%= link_to("削除", "/form/#{@post.id}/delete", {method: "post"}) %>
link_to を用いて、先ほど作成した deleteアクション へリンクしています。
注意: get と post の違い
{method: "post"}) をつけることで、routesのpostと紐づけることができます。
ややこしい!!
postでは↓エラー
<%= link_to("削除", "/form/#{@forms.id}/delete") %>
↓が正しい
<%= link_to("削除", "/form/#{@forms.id}/delete", {method: "post"}) %>
データを取り出して削除する
def delete
@forms = Form.find_by(id: params[:id])
@forms.destroy
redirect_to("/")
end
↑の詳細
def delete
# find_byメソッドで、データを取得する
@forms = Form.find_by(id: params[:id])
end
def delete
# @テーブル名.destroy で削除する
@forms.destroy
end
def delete
# redirect_toメソッド でリダイレクトを設定する
redirect_to("/")
end
以上が、完了しエラーが怒らなければ、削除機能が出来上がっているはずです。
いかがでしたか?
あとがき
ここまで読んでいただき、ありがとうございました。
データベースの設定から表示・修正の機能を実装していて、投稿に削除機能をつけると本格的なサイトみたいですね。
でも、投稿機能が無事に削除された時は嬉しいけど切ない気持ちになります(Why?)
データーベースの作成・編集・デリート と基本機能を今までで実装しました。
セキュリティーや詳細機能を今後は学びたいと思います。
参考リンク
Myリンク
また、Twitter・Portfolio のリンクがありますので、気になった方は
ぜひ繋がってください。プログラミング学習を共有できるフレンドが出来るととても嬉しいです。