Per la mia applicazione, ho account utente che le persone possono iscriversi. Io uso la gemma devise
per l'installazione.Rails - Come distruggere gli utenti creati sotto Devise?
Ho anche una pagina utenti che elenca tutti gli utenti registrati al sito insieme a un collegamento destroy
. Desidero che il mio amministratore sia in grado di eliminare utenti e di reindirli a questa pagina di elenco degli utenti. Ma quando clicco sul link per distruggere un utente specifico, si limita a reindirizzare alla pagina del profilo utente e non cancella l'utente dal database.
Qualcuno sa perché?
** AGGIORNAMENTO: aggiornato il codice di seguito come consigliato e funziona ora.
users_controller.rb
def destroy
@user = User.find(params[:id])
@user.destroy
if @user.destroy
redirect_to root_url, notice: "User deleted."
end
end
utenti/index.html.erb
<div class = "container">
<div id="usersview">
<b>USERS DIRECTORY</b>
<%= render @users %>
</div>
<center>
<%= will_paginate @users %>
</center>
</div>
utenti/_user.html.erb
<div class="comments">
<%= link_to user.name, user %>
<% if current_user.try(:admin?) && !current_user?(user) %>
<%= link_to "Destroy", admin_destroy_user_path(user), method: :delete, data: { confirm: "You sure?" } %>
<% end %>
</div>
routes.rb
devise_for :users
match 'users/:id' => 'users#destroy', :via => :delete, :as => :admin_destroy_user
match 'users/:id' => 'users#show', as: :user
resources :users
Ho aggiornato (vedere la domanda modificata) come hai notato ma gli stessi risultati.Non distruggere e percorsi per mostrare la pagina. È possibile che i miei percorsi non siano nel giusto ordine? – spl
prova a posizionare il percorso personalizzato sopra la chiamata 'devise_for'. – AlexBrand
Non penso che tu abbia bisogno delle 'risorse: utenti ' – AlexBrand