如何在不使用map的情况下从Active Record查询中获取具有清晰数据的数组

时间:2010-06-01 14:38:05

标签: ruby-on-rails activerecord

您好我想询问是否可以使用ActiveRecord查询获取清晰数据的数组,而不使用map,collect或者每个。

names = User.find(:all, :select => "name")
return names == [#<User name:"Peter">,#<User name:"Martin">]

我想要名字== [“彼得”,“马丁”]而不使用地图,收集或每个。谢谢你的回答。

3 个答案:

答案 0 :(得分:1)

即使ActiveRecord提供了一个方法来执行您想要的操作(单列到值数组),它也会在内部使用循环(每个或收集)来执行此操作。

在这种情况下,我没有看到使用循环有什么问题,Ruby使它很容易实现。

users = User.find(:all, :select => "name").collect { |u| u.name }

答案 1 :(得分:1)

User.connection.select_values("SELECT name FROM users")
#=> ["francois"]

答案 2 :(得分:0)

不,你不能不使用地图,收集每个...等......

换句话说,您无法在单个查询中获得此类结果。