2011-02-05 2 views
3

Cela doit être très basique (je suis un débutant), mais je ne trouve pas la réponse. Quel est le meilleur moyen de capturer l'identifiant de l'utilisateur depuis la session et de le coller dans le champ user_id pour un message donné?Capture quel utilisateur a créé un post

(A has_many utilisateur: messages et messages belongs_to: utilisateurs)

def create 

@post = Post.new(params[:post]) (<---I want to get the user id from the session into here?) 

end 
+2

Comment gérez-vous l'authentification des utilisateurs? – Dogbert

+0

Merci pour l'aide à tous. Commencer à prendre le coup de ceci. Dogbert, j'utilise Omniauth pour permettre aux utilisateurs de se connecter avec Twitter/Facebook etc. - Je ne veux pas traiter mes propres authentifications pour le moment. – user525337

Répondre

0

Marque:

params["post"].merge!({"user_id" => your_variable}) 

Quoi qu'il en soit, Dogbert vous a posé une excellente question.

4

En supposant que vous gérez l'authentification de telle sorte que vous pouvez accéder à l'utilisateur en cours au moyen d'un appel de méthode (current_user):

 
def current_user 
    @current_user ||= User.find(session[:user_id]) 
end 

Et en supposant que vous avez un modèle qui est une sorte de configuration de la manière suivante:

 
class User 
    has_many :posts 
end 

class Post 
    belongs_to :user 
end 

Vous pouvez réellement utiliser current_user pour créer un poste associé à ceci:

 
current_user.posts.create(params[:post]) 
Questions connexes