Ruby on rails 如何仅从模型中选择特定属性?
我只想从模型中选择特定属性(id、名称) SQL命令可以是,例如: 从用户中选择id、名称、用户名Ruby on rails 如何仅从模型中选择特定属性?,ruby-on-rails,Ruby On Rails,我只想从模型中选择特定属性(id、名称) SQL命令可以是,例如: 从用户中选择id、名称、用户名 你知道我如何处理这个问题吗?有一个:在find methods上选择选项。这允许您执行以下操作: User.find(:all, :select => 'id, name, username') 返回的对象将是具有这些属性的User实例 或者如果您真的只需要这些值,而不将它们包装为User实例。您可以将方法添加到User以返回它们 def self.get_ids_and_names
你知道我如何处理这个问题吗?有一个
:在find methods上选择选项。这允许您执行以下操作:
User.find(:all, :select => 'id, name, username')
返回的对象将是具有这些属性的User
实例
或者如果您真的只需要这些值,而不将它们包装为User
实例。您可以将方法添加到User
以返回它们
def self.get_ids_and_names
self.connection.select_all("select id, name, username from users")
end
它将返回一个哈希数组,将列名映射到该行的值。例如,[{'id'=>1,'name'=>'user1','username'=>'username1'},…]
您也可以这样做
User.find(:all).map(&:id)
如果要在mongoid中获取用户ID或名称列表,请执行以下操作:
User.only(:name, :username).where(id: params[:id]).first
User.pluck(:id)
很老的问题,但是rails 3的方式是:
User.only(:name, :username).where(id: params[:id]).first
User.pluck(:id)
SQL
从用户处选择id、名称、用户名
红宝石
User。选择(:id,:name,:username)
根据条件,您可以这样写:
User.选择(:id,:name,:username)。按(:age 22)查找
我们可以使用选择作为符号或字符串,例如:
User.select("id, name, username")
或
其实你只需要写这个
@user= User.select(:attributeN, :attributeN......., attributeN)
respond_to do |format|
format.json {
render json: @user
}
也可以传入数组,如下所示:
Model.all.select ['id', 'title']
在Rails3中:User.select(“id,name,username”)
我已经在谷歌上搜索了一段时间了。谢谢我不建议这样做。这是一个答案,但它相当缓慢User.find(:all)
返回每个项目的ActiveRecord对象的完整集合。然后使用ruby,它映射到这些对象,并只返回ID。你还得把那些垃圾收集起来。希望您的ID不会被用于其他内存密集型操作<代码>用户。拨动
和<代码>用户。选择
更有效