49 votes

Création d'une page de présentation «Utilisateurs» à l'aide de Devise

J'essaie de créer une page utilisateur show (qui fonctionnera comme une page de profil) mais je ne sais pas comment faire cela avec Devise. Il ne semble pas que Devise soit fourni avec une sorte de définition show - existe-t-il un moyen d'accéder aux contrôleurs que Devise implémente pour en créer un ou dois-je les remplacer?

79voto

Sergey Kishenin Points 3118

Vous devez générer un users_controller qui hérite de application_controller et y définir votre méthode personnalisée show . N'oubliez pas de lui créer une vue et des itinéraires. Ex:

 #users_controller.rb
def show
  @user = User.find(params[:id])
end

#in your view
<%= @user.name %>

#routes.rb
match 'users/:id' => 'users#show', via: :get
# or 
get 'users/:id' => 'users#show'
 

40voto

Ashitaka Points 8105

N'oubliez pas que les itinéraires de vos utilisateurs doivent être inférieurs aux itinéraires des utilisateurs de devise_for, comme ceci:

 #routes.rb
devise_for :users
resources :users, :only => [:show]
 

De plus, si vous utilisez un nom d'utilisateur ou un e-mail comme clé primaire au lieu de l'ID habituel, vous devez éviter les conflits de routage en déclarant vos itinéraires comme suit:

 #routes.rb
devise_for :users, :path_prefix => 'd'
resources :users, :only => [:show]
 

-12voto

Kleber S. Points 3427

vous pouvez générer les vues utilisées par devise, vous pouvez donc les modifier comme vous le souhaitez.

  rails g devise:views
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X