1

使用 rails/active 记录时,查询/收集每个对象 2 或 3 个属性的最佳方法是什么?

一个例子是,如果我想查询我的用户表并获取特定类型用户的所有用户 ID 和电子邮件。

如果我只想获取用户 ID,我会这样做

User.where(:condition => nil).collect {|u| u.id}

但是如果我想要 id 和 email 怎么办?

4

1 回答 1

1

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]}
于 2013-04-12T15:55:39.003 回答