有一個較短的方式做以下(從ActiveRecord對象中採集兩個屬性的快捷方式?
@user.employees.map { |e| { id: e.id, name: e.name } }
# => [{ id: 1, name: 'Pete' }, { id: 2, name: 'Fred' }]
User
has_many
員工。這兩個類從ActiveRecord::Base
繼承。
兩件事情我不喜歡上面的
- 它在映射之前將員工加載到內存中,
- 它是冗長的(主觀我猜)
有沒有更好的方法?
任何理由建立一個哈希值,而不是與員工的工作情況(經載有一個'select'只有兩列)? – tokland
是的,我知道這是有點人爲的。我只注意到'pluck'方法,在我看來,應該有一個以上的屬性採摘。 –
對於擁有超過1個屬性的摘錄有一個問題:https://github.com/rails/rails/pull/5472。另外,請查看:https://github.com/ernie/valium – tokland