使用 rails/active 记录时,查询/收集每个对象 2 或 3 个属性的最佳方法是什么?
一个例子是,如果我想查询我的用户表并获取特定类型用户的所有用户 ID 和电子邮件。
如果我只想获取用户 ID,我会这样做
User.where(:condition => nil).collect {|u| u.id}
但是如果我想要 id 和 email 怎么办?
使用 rails/active 记录时,查询/收集每个对象 2 或 3 个属性的最佳方法是什么?
一个例子是,如果我想查询我的用户表并获取特定类型用户的所有用户 ID 和电子邮件。
如果我只想获取用户 ID,我会这样做
User.where(:condition => nil).collect {|u| u.id}
但是如果我想要 id 和 email 怎么办?
id
只需将and收集到email
一个数组中:
User.where(:condition => nil).collect {|u| [u.id, u.email]}
或者,如果您想要以下形式的哈希{:id => :email}
:
User.where(:conditions => nil).inject({}) {|m, u| m[u.id] = u.email; m}
如果您告诉数据库仅使用以下方式获取您需要的字段,则可以稍微提高效率select
:
User.where(:conditions => nil).select([:id, :email]).
collect {|u| [u.id, u.email]}