rozważyćCzy można poprosić o tylko niektóre kolumny ze stowarzyszenia ActiveRecord?
def Foo
has_one :user
end
powiedzmy chcę tylko wymienić Foo
's User
' s, a nie któregokolwiek z pozostałych kolumn. więc chcę
SELECT name FROM "users" WHERE "prices"."id" = 123
ale robi foo.user.name
da mi
SELECT * FROM "users" WHERE "prices"."id" = 123
jest jakiś zręczny sposób na wykorzystanie stowarzyszenie uzyskać tylko jedną kolumnę? jeśli nie, to muszę zrobić:
User.where(id: foo.user_id).pluck(:name).first
Czy zakres mógłby być reprezentatywny? Zakres zwykle zwraca ActiveRecord :: Relation, pusty lub nie. Metoda byłaby bardziej odpowiednia (lub delegowana?) – MrYoshiji
Cóż, jest to łańcuch metod kwerend ActiveRecord, więc myślę, że zwraca relację - jedyną dziwną rzeczą jest to, że zwróci relację zbudowaną na klasie Bar z klasy Foo - ale gdy już przejdziesz do 'something.otherthing.where()' i tak to robisz. Zdefiniowanie metody byłoby również dobrym sposobem, aby to osiągnąć. Nigdy nie musiałem robić czegoś takiego, więc nie mam ram odniesienia, który byłby lepszy lub dlaczego. – Andrew