나는 최근에 railscast 에피소드 #250 Authentication from Scratch (revised)을 봤고 나는 signup/login/logout 작업을했습니다. 그러나 나는 데이터베이스에서 사용자를 삭제하는 작업을 만들고 있지만 현재 사용자를 삭제하려고하면 몇 가지 오류가 발생합니다.데이터베이스에서 rails 앱의 사용자를 삭제/삭제하는 방법은 무엇입니까?
삭제/파괴 행위는 다음과 같이 보는 users_controller.rb,
def delete
# the below line calls the destroy method/action
self.destroy
end
def destroy
session[:user_id] = nil
# @user = User.find(params[:id])
@user.destroy
# User.find(parmas[:id]).destroy
# the below line didn't delete the current user :(
# @user = User.destroy
redirect_to :controller=>'users', :action => 'new'
end
나는 사용자가 다음과 같은 삭제하려고하면 브라우저에서지고있어 오류 메시지입니다.
삭제 링크는 다음과 같습니다가 포함 된 페이지, index.html.erb
<h1>Welcome
<% if current_user %>
<%= current_user.email %>
<% end %>
</h1>
<p>You have <%= current_user.credit %> credits.</p>
<!-- http://stackoverflow.com/questions/5607155/ -->
<%= link_to('Delete your account', :controller => 'users', :action => 'destroy') %>
routes.rb
Rails.application.routes.draw do
# the below generated route is not necessary
# get 'sessions/new'
# delete user route
#get 'delete' => 'users#delete'
# shortened routes, per railscast comment
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
get 'logout' => 'sessions#destroy'
# get 'signup', to: 'users#new', :as 'signup'
# get 'login', to: 'sessions#new', :as 'login'
# get 'logout', to: 'sessions#destroy', :as 'logout'
resources :users
resources :sessions
root to: 'users#new'
# get 'users/new'
# the below line specifies JSON as the default API format
namespace :api, defaults: {format: 'json'} do
namespace :v1 do
resources :users
end
end
위의 행을'index .html.erb'을 다음과 같이 수정합니다. '<% = link_to'계정을 삭제하십시오., users_path, : method => : delete %>'이제 경로에 [DELETE]가 일치하지 않습니다. "/ users "' – Chris
'rake routes'의 결과는 무엇입니까? 특히 사용자와 관련된 부분은 무엇입니까? – ABMagil
https://ghostbin.com/paste/zqvv8 – Chris