2013-03-12 2 views
5

Kann mir jemand sagen, ob es möglich ist, eine Verknüpfung zu laden, aber nur bestimmte Attribute zurückzugeben?Rails-Eager-Ladezuordnung mit ausgewählten Attributen

Ich möchte einige Bestellungen mit ihren Konten abrufen, aber nur die Kontonamen.

Order.select([:id, :account_id]).includes(:account).limit(2)

+4

Ich bin nicht sicher, dass möglich ist. Sie können jedoch den Account-Namen zu den zurückgegebenen Bestelldatensätzen hinzufügen. 'orders = Order.joins (: account) .select ('orders.id, orders.account_id, accounts.name AS account_name')'. dann benutze einfach 'account_name' wie' orders.first.account_name' – jvnill

+0

Das ist, was ich von meiner Google-Forschung dachte, also danke für die Bestätigung –

Antwort

5

Ich denke jvnill Kommentar sagt alles:

Ich bin nicht sicher, dass möglich ist. Sie können jedoch den Account-Namen zu den zurückgegebenen Bestelldatensätzen hinzufügen.

orders = Order.joins(:account).select('orders.id, orders.account_id, accounts.name AS account_name') 

dann benutzen Sie einfach account_name wie orders.first.account_name

+1

Ich bin auch neugierig darauf. Gibt es keine Möglichkeit, nur bestimmte Spalten oder irgendwelche find_by_sql Tricks zu laden. – roxxypoxxy