Czy istnieje krótsza droga wykonać następujące czynności (Skrót do wyskubywania dwóch atrybutów z obiektu ActiveRecord?
@user.employees.map { |e| { id: e.id, name: e.name } }
# => [{ id: 1, name: 'Pete' }, { id: 2, name: 'Fred' }]
User
has_many
pracowników. Obie klasy dziedziczą ActiveRecord::Base
.
Dwie rzeczy nie lubię o powyższym
- To ładuje pracowników do pamięci przed mapowaniem,
- To jest pełne (subiektywne, jak sądzę)
Czy istnieje lepszy sposób?
jakikolwiek powód, aby zbudować hash zamiast pracować z wystąpień pracownika (tylko z tych dwóch kolumn ładowanych z 'select')? – tokland
Tak, wiem, że to trochę wymyślne. Właśnie zauważyłem metodę "pluck" i wydaje mi się, że powinno być zrzucenie więcej niż jednego atrybutu. –
istnieje otwarty problem dla zrzutu z więcej niż 1 atrybut: https://github.com/rails/rails/pull/5472. Sprawdź też: https://github.com/ernie/valium – tokland