2016-04-25 24 views
1

Ich verwende Schienen 4.2. Ich habe ein Modell User und CommentZugriff Spalten von zwei verschiedenen Tabellen

class User 
    has_many :comments 
end 

class Comment 
    belongs_to :user 
end 

Benutzer hat eine Spalte name und Kommentar hat eine Spalte user_id und content Jetzt möchte ich die Spalten holen comment.content und user.name Durch die Verwendung von Join Ich mag dieses

tun können
Comment.joins(:user).select(:name,:content) 

Können Sie eine effiziente Methode vorschlagen, um die Aktion auszuführen?

+0

haben Sie versuchen 'User.find (1) .comments' – uzaif

+0

Meine Forderung ist anders. Ich habe eine Reihe von Kommentaren Ich möchte Benutzer zu jedem Kommentar finden und zeigen Sie es –

+0

okey versuchen Sie diese 'Comment.find (1) .user' es wird Benutzerobjekt – uzaif

Antwort

0

Sie können die Spalten Namespace wie folgt vor:

Comment.joins(:user).pluck('users.name', 'comments.content') 

# though, you don't need `comments.content`; `content` will work as well. 
+0

Comment.joins (: user) .select (: name,: content) das funktioniert einwandfrei. Es listet Kommentare mit Benutzernamen –

+0

@rohankharvi ich meine Antwort bearbeitet. –

+0

Ich möchte eine effiziente Methode. Ich möchte Join nicht nur verwenden, um auf eine Spalte von Benutzer- und auch Benutzer-ID-Spalte im Kommentar zuzugreifen –

Verwandte Themen