2011-04-22 7 views
2

comment puis-je obtenir le nom d'utilisateur d'un ID dans Rails 3? À mon avis, j'appelle <% = blog.user_id%> pour l'ID mais comment puis-je obtenir le nom là-bas?Rails 3 get Nom d'utilisateur par ID

Le contrôleur est un défaut d'échafaudage.

, Greets

Mark

Répondre

3

Assurez-vous de définir l'association dans votre modèle Blog.

belongs_to :user 

Et selon vous pouvez utiliser votre <%= blog.user.name %>

+1

Je l'ai fait, mais je reçois une erreur: méthode non définie name » pour "# ": Utilisateur Le nom est enregistré dans le nom d'utilisateur. Quand je le change en nom d'utilisateur l'erreur est: la méthode undefined 'username 'pour nil: NilClass – Maaaark

+0

Dans ce cas, je suspecte également que vous ayez une instance de blog sans utilisateur associé. Pour éviter l'erreur, vous pouvez utiliser: '<% = blog.user.try (: nom d'utilisateur)%>'. –

+0

Super qui a fonctionné pour moi! J'oublie de supprimer les anciens billets de blog sans l'identifiant de l'utilisateur. Après les avoir supprimés, votre première solution a également fonctionné! Je vous remercie! – Maaaark

1

Vous devez utiliser <%= blog.user.name %> et ont défini

belongs_to :user 

dans votre modèle de blog. Vous devriez travailler avec ..._id au niveau de la vue.

0

vous devriez apprendre à coder dans Rails, c'est une question très basique.

Envisager d'avoir un regard sur http://railsforzombies.org

Il est un excellent tutoriel en ligne

2

En général, vous voulez éviter les longues chaînes de points comme post.user.name. Essayez:

class Post < ActiveRecord::Base 
    belongs_to :user 
    delegate :name, :to => :user, :prefix => true 
end 

Ensuite, votre point de vue vous pouvez appeler

@post.user_name 

pour obtenir le nom de l'utilisateur. Je pensais que je mettrais ça sur le marché, car j'essaie d'inclure dans mon code une bonne habitude.

0

Essayez d'utiliser <% = blog.user.try (: nom)%>