#やりたいこと
@postの投稿内容を削除したい
#疑問点
削除はできており、エラーが起きているわけではないのですが...
投稿内容を削除する、すなわちデータベースの内容を変更する必要があるときは、メソッドをpostにしなければならないと学んだのですが、postコントローラーのdestroyアクションへのルーティングをGETにしているにもかかわらず投稿が削除できてしまっています。
routes
1Rails.application.routes.draw do 2 get 'contacts/new' 3 get 'contacts/create' 4 5 get 'blog' => "posts#index" 6 get 'blog/new' => "posts#new" 7 post 'blog' =>"posts#create" 8 get 'blog/:id' => "posts#show" 9 get 'blog/:id/destroy' => "posts#destroy" 10 get 'blog/:id/edit' => "posts#edit" 11 post 'blog/:id/update' => "posts#update" 12 13 get 'access' => "top#access" 14 get 'lesson' => "lesson#index" 15 get 'profile' => "top#profile" 16 get 'users/show' 17 18 root 'top#index' 19 20 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 21end
html
1<h1>edit</h1> 2<%= form_tag({contoller: :posts, action: :update}, method: :post) do %> 3 <div class="new-post-submit"> 4 <textarea name="title" rows="1" cols="80"><%= @post.title %></textarea> 5 <textarea name="content" rows="8" cols="80"><%= @post.content %></textarea> 6 <input type="submit" value="edit"> 7 </div> 8<% end %> 9<%= link_to "削除", "/blog/#{@post.id}/destroy" %>
postscontroller
1class PostsController < ApplicationController 2 def index 3 @posts = Post.all 4 end 5 6 def show 7 @id = params[:id] 8 @post = Post.find_by(id: params[:id]) 9 end 10 11 def new 12 end 13 14 def create 15 params[:title] 16 params[:content] 17 @post = Post.new(title: params[:title], content: params[:content]) 18 @post.save 19 redirect_to("/blog") 20 end 21 22 def edit 23 @post = Post.find_by(id: params[:id]) 24 end 25 26 def update 27 @post = Post.find_by(id: params[:id]) 28 @post.title = params[:title] 29 @post.content = params[:content] 30 @post.save 31 redirect_to("/blog") 32 end 33 34 def destroy 35 @post =Post.find_by(id: params[:id]) 36 @post.destroy 37 redirect_to("/blog") 38 end 39end
どうしても気になったので、どなたかわかる方がいらっしゃいましたらご回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/05 23:59