Comment créer des profils public? J'utilise Devise et seulement/user /. L'utilisateur peut voir seulement son profil, je veux faire/user/user_id.Profils utilisateur publics? Ruby on Rails + Devise
user_id - profil d'utilisateur public.
Comment créer des profils public? J'utilise Devise et seulement/user /. L'utilisateur peut voir seulement son profil, je veux faire/user/user_id.Profils utilisateur publics? Ruby on Rails + Devise
user_id - profil d'utilisateur public.
Vous devez créer une route sur le fichier config/routes.rb comme ci-dessous. Et puis implémentez votre méthode et vue de contrôleur.
match 'show/:id' => 'user#show'
Je ne suis pas d'expérience, mais je l'ai fait comme ceci:
Dans les automates créer un users_controller.rb
En vue de créer/utilisateurs/vues typiques, pour exemple index
et show
(bien sûr les définir dans votre contrôleur)
Dans les routes ajouter resources :users
Vous pouvez simplement ajouter des migrations à la table des utilisateurs, comme
$ rails g migration add_birthday_to_users birthday:date
et montrer les utilisateurs /: page id
Pour un profil public en utilisant devise
, assurez-vous avoir une route mis en place comme
resources :users
et assurez-vous que vous avez une action de contrôleur mis en place pour gérer la ressource d'exposition. Si ce n'est pas le cas, créez un contrôleur users_controller.rb
et donnez-lui une définition de classe, avec une méthode show.
class UsersController < ApplicationController
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
end
Parcourir à côté /users/1
ou /users/2
(si vous avez deux utilisateurs mis en place) et vous devriez voir les deux profils. Pour les définir sur private, vous devez effectuer un filtre before dans l'action du contrôleur, en vérifiant l'ID current_user par rapport au param[:user_id]
.
N'est-ce pas simplement écrire un contrôleur qui définit '@ user' comme' @user = User.find (params [: id]) ', en supposant que' @ user' est ce que vous utilisez dans votre vue de profil ? –
Je fais blog aka twitter (par expérience, je suis RoR). Je suis l'utilisateur 1 et je veux voir le profil public de l'utilisateur 2 (photo, emplacements, bio, derniers messages). – Pyrchev