rails でsnsを作っています。ユーザーのマイページで退会ページへのリンクを押して、リンク先にある退会ボタンを押すと退会できるようにしたいと思っています。そこで
ルーティングをこのように
get "users/:id/leave"=>"users#leave"
post "users/:id/destroy"=>"user#destroy"
Usersコントローラーでは、このように
def leave
@user = User.find_by(id: params[:id])
end
と
def destroy
@user = User.find_by(id: params[:id])
@posts = Post.find_by(id: params[:id])
if @user.destroy
@posts.destroy
redirect_to("/")
flash[:notice] = "アカウントを削除しました"
end
end
leaveビューはこのようにしています
<div class="main user-show"> <div class="container"> <% if @user.id == @current_user.id %> <%= link_to("退会する", "users/:id/destroy") %> <% end %> </div> </div>マイページで退会ボタンを押して退会ページ(leaveビュー)に移動して、退会ボタンを押すと
localhost:3000/users/:id/destroy
へ移動してdestroyアクションを実行して欲しいのですが、
退会ボタンを押すとURLが
http://localhost:3000/users/17/users/:id/destroy
になってしまいます。
どなたかよろしくお願いします。
Rails.application.routes.draw do post "likes/:post_id/create" => "likes#create" post "likes/:post_id/destroy" => "likes#destroy" post "users/:id/update" => "users#update" get "users/:id/edit" => "users#edit" post "users/create" => "users#create" get "signup" => "users#new" get "users/index" => "users#index" get "users/:id" => "users#show" post "login" => "users#login" post "logout" => "users#logout" get "login" => "users#login_form" get "users/:id/likes"=>"users#likes" get "users/:id/leave"=>"users#leave" post "users/:id/destroy"=>"user#destroy" get "posts/index" => "posts#index" get "posts/new" => "posts#new" get "posts/:id" => "posts#show" post "posts/create" => "posts#create" get "posts/:id/edit" => "posts#edit" post "posts/:id/update" => "posts#update" post "posts/:id/destroy" => "posts#destroy" get "/" => "home#top" end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/07/16 08:09
2019/07/16 08:11
退会済みユーザー
2019/07/16 08:17
2019/07/16 08:23
退会済みユーザー
2019/07/16 08:28
2019/07/16 08:55 編集
退会済みユーザー
2019/07/17 06:48
2019/07/17 07:33