1.背景:

  之前一直使用数组的collect方法去遍历数组库中得来的数据,当数据多了之后就头晕了,现在好像找到了更好的

select和pluck方法了.假如有一个model User,其中有name属性.

2.方法介绍:

 1).collect 一般是直接用User.all.map(&:name)

但是这样会很麻烦,会不断的遍历从数据库中提取出来的数据,而且那些数据还要转化成model加载入内存可以用这个方法测试时间,

下面的例子也可以测试比较.

2).select这个方法是在可以提取不必要的属性出来用.

 3).pluck 这个方法速度比较快,User.pluck(:name)直接从数据库提取数据,并且没有转化成Model对象.但是pluck提取多

个字段在rails4.0以上才能用.

3.总结:

通常如果要根据条件用到其他属性的,就只能把每个对象加载成Model对象来用了,但是要用到当前有限的就用select可以了,

如:User.select([:id,:name]).要是rails4.0以上而且要用到多列的可以用pluck方法,提出出来的是数组了.

参考链接:

!.Pluck vs. map and select

2.Getting to Know Pluck and Select

在rails中pluck和select和collect区别相关推荐

  1. Rails中的includes和joins的区别与用法(翻译,部分)

    includes和joins的不同 当includes和joins的时候最重要的概念就是他们有他们的典型用例. includes使用贪婪加载(eager loading)而joins使用懒加载(laz ...

  2. HTML左侧下拉列表,HTML中的下拉列表 select

    HTML中的下拉列表: Volvo Saab Opel Audi 其中select是显示一个下拉列表(drop down list)出来,option是下拉列表中的项目(item),而option的文 ...

  3. rails 中的pluck 方法

    rails 中的pluck 方法 pluck vs. map Transaction.all.map(&:user_id)# 通过pluck的方法(rails 3.2.1以上版本可用)只需要选 ...

  4. rails db 查询优化_如何优化查询以解决Rails中常见的可伸缩性瓶颈

    rails db 查询优化 by Usama Ashraf 通过Usama Ashraf 如何优化查询以解决Rails中常见的可伸缩性瓶颈 (How to optimize your queries ...

  5. 相关子查询中exists后select 加数字的理解

      查看文章     相关子查询中exists后select 加数字的理解 2010-07-23 17:16 前提:两个基础表 SQL> select * from courses; COURS ...

  6. 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法

    在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他 ...

  7. SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别

    SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别 我们在写存储过程的时候经常会遇到需要将查询到的数据存到一张表里面的情况,如将一个table1的数据 ...

  8. MySQL中INSERT INTO SELECT的使用

    1. 语法介绍       有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (f ...

  9. 在Rails中撤消脚手架

    有没有办法在Rails中"撤消"脚手架命令的效果? #1楼 第一次,如果您已生成脚手架,则可以检查数据库迁移. 你必须销毁它们来清理你的数据库 rake db:rollback 然 ...

最新文章

  1. 某程序员吐槽自己之前的外包同事能力不行,经常给同事挖坑,却面过了头条!只因为会刷题!头条招人这么不靠谱?...
  2. Q1全球智能机销量增长3.9% 三星苹果华为居三甲
  3. 为徐小斌、张悦然两篇小说写的推荐语
  4. Java集合(1)--集合概述
  5. docker容器内服务访问宿主机服务
  6. ETL(数据仓库技术)
  7. 接口测试——测试用例执行
  8. IDEA→编码设置、JDK设置、快捷方式、运行项目、debug、关联git、关联maven、mybatis跳转plugin
  9. 教你一招解决Git时提交到多个远程仓库
  10. win7 安装ss
  11. 计算机类毕业设计评阅书评语,本科毕业论文专家评阅评语
  12. 网站建设的流程及步骤是什么?
  13. Yar服务端与客户端交互,请求原理
  14. C语言读取txt文件
  15. props写法_详解Vue内部怎样处理props选项的多种写法
  16. 长沙 22 岁女子长期过量喝奶茶进ICU,血糖值过高,血液呈乳白色几乎变「甜饮」,奶茶喝多少会有危险?
  17. 嵌入式linux环境取得U盘容量等信息的方法
  18. 侍魂胧月传说显示服务器满了,侍魂胧月传说满级之后做什么 满级每日必做任务详解[多图]...
  19. 仿生的git学习网站
  20. rgb颜色设置方法及常用颜色的RGB值

热门文章

  1. 饿了么商家开放平台踩坑记录2,php更新商品信息提示attribute:[]不是一个有效的JSON对象 By勤勤学长 Qq318692996
  2. 2017-08-25阿里校招笔试题---菜鸟仓库
  3. java发送QQ邮件详细步骤
  4. 【AAAI 2021】自监督目标检测知识蒸馏:Distilling Localization for Self-Supervised Representation Learning
  5. 4K60帧!RayLink远程控制软件如何帮助设计师远程办公?
  6. 一卡通(M1卡)破解过程记录——准备篇
  7. Absible#Ansible-Playbook的任务控制
  8. Lightgbm模型两种保存方式
  9. 就这?阿里p6的面试竟然这么简单
  10. 微商城搭建教程,手把手教你开通自己的线上/定制微商城!