나는 devise와 인증 작업을하고 있습니다. 사용자를 삭제하려고 할 때 내 문제가 발생합니다. 나는 사용자 = 다음 액티브 :: RecordNotFound 오류는 ID로 사용자를 찾을 수 없습니다 오류가에 타격레일즈 - 개발자 - 계정을 취소 할 수 없음 - id = users 인 사용자를 찾을 수 없음
수 :
before_filter :authenticate_user!, :except => [:show]
def show
@user = User.find(params[:id])
end
및 매개 변수가 전달되는 것은 다음과 같습니다
{"controller"=>"users", "action"=>"show", "id"=>"users"}
이 오류가 클래스와 관련이 있는지 궁금해하고 있습니다. RegistrationsController < Devise :: RegistrationsController 개발자 계정 사용자 지정을 위해 만들었지 만 확실하지 않습니다.
내게 이것은 정말로 라우팅 문제라고 말하고 있습니다. 여기 내 경로는 파일입니다
Music::Application.routes.draw do
# resources :users
devise_scope :user do
get "/edit/account/:id" , to: "devise/registrations#edit" , :as => "edit_account"
get "/login" , to: "devise/sessions#new" , :as => "login"
get "/logout" , to: "devise/sessions#destroy" , :as => "logout"
end
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", :registrations => "registrations" }
resources :contact_us_emails
get('/about-us', { :controller => "WelcomePages", :action => 'about', :as => 'about_us'})
get('/contact_us', { :controller => "WelcomePages", :action => 'contact_us', :as => 'contact_us'})
get('/search_collaborators', { :controller => "SongRooms", :action => 'search_collaborators', :as => 'search_collaborators'})
resources :searches do
collection do
get '/song_rooms/:query', :controller => "searches", :action => 'song_rooms', :as => 'search_song_rooms'
get '/users/:query', :controller => "searches", :action => 'users', :as => 'search_users'
get '/final_songs/:query', :controller => "searches", :action => 'final_songs', :as => 'search_final_songs'
get '/search_and_invite_facebok_friends/:user_id', :controller => "searches", :action => "search_and_invite_facebok_friends", :as => 'invite_fb_friends'
end
end
match 'download/:id' => 'versions#download', :as => :download
match '/musicians' => 'searches#musicians', :via => :get, :as => 'musicians'
match '/producers' => 'searches#producers', :via => :get, :as => 'producers'
match '/accept/:id' => 'requests#accept', :via => :get, :as => 'accept'
match '/deny/:id' => 'requests#deny', :via => :get, :as => 'deny'
match '/users/:id' => 'devise/registrations#destroy', :via => :delete, :as => 'cancel_registration'
resources :versions do
resources :messages
member do
post :vote
get :mark_as_final
get :unmark_as_final
end
end
post('/collaborators', {:controller => "Collaborators", :action => 'create', :as => 'create_collaborator'})
delete('song_rooms/:id/collaborators/:id', { :controller => "Collaborators", :action => 'destroy', :as => 'delete_collaborator'})
resources :song_rooms do
member do
get 'choose_final_song'
end
resources :collaborators
end
resources :user_song_uploads
# resources :users
post('/user/:id/vote', { :controller => "Users", :action => 'vote', :as => 'user_vote'})
match '/:id', :to => "users#show", :as => :user, :via => :get
authenticated :user do
root :to => "welcome_pages#home" , :as => "user_home"
end
root :to => "welcome_pages#index" , :as => "home"
end
마지막 LINK_TO 조치를 취소의 나하는 것은 이것이다 : 나는 또한 RESOURCE_NAME, @user, @의 user.id, CURRENT_USER, CURRENT_USER를 위해 자원을 전환 시도했습니다
<%= link_to "Cancel my account", registration_path(resource), :data => { :confirm => "Are you sure?" }, :method => :delete %>
.신분증.
도움 주셔서 감사합니다.
devise_scope :user do
get "/edit/account/:id" , to: "devise/registrations#edit" , :as => "edit_account"
delete "/delete_user/:id", to: "devise/registrations#destroy", :as => "delete_account"
get "/login" , to: "devise/sessions#new" , :as => "login"
get "/logout" , to: "devise/sessions#destroy" , :as => "logout"
end
:
<%= link_to "Cancel my account", cancel_registration_path(resource), :data => { :confirm => "Are you sure?" }, :method => :delete %>
내가 바꿀 때 : [GET] "/ users/user_example과 일치하는 경로가 없으므로 GET 요청으로 라우팅되는 이유를 모르겠다 – Jches