1. 用于条件过滤

@works=DworkPro.all.order(:work_type)

@work_pro=@works.select{ |x| x.job_type == 7}

2. select 和find 的区别

arr = [1,2,3,4]

  arr.find{|i| i%2 == 0 }
#=>2
arr.select{|i| i%2 == 0}
#=>[2, 4]

find返回满足条件的第一条记录,而select返回满足条件的全部记录。 要分情况应用不同的方法,否则会产生bug。

3.  判断指定 字段 是否存在

login = DLoginMsg.find_by(:id => login_id)

@task_lines = DLogionTaskLine.where(:d_task_form_id => login.d_task_forms.pluck(:id))
.select{|x| x.long_login.present? }
.map { |x|  {  login_name: login.login_name,
      telphone: login.telphone,
      get_time: x.get_time.strftime("%Y-%m-%d %H:%M:%S"),
      long_login: x.long_login,
      lat_login: x.lat_login,
      d_task_form_id: x.d_task_form_id,
      unit_name: SRegionCodeInfo.find(yw_unit_id).unit_name,
      station_name: DTaskForm.find(x.d_task_form_id).present? ? DTaskForm.find(x.d_task_form_id).station_name : '',
      job_no: DTaskForm.find(x.d_task_form_id).job_no,
      title: DTaskForm.find(x.d_task_form_id).title }

   }

4. 只查询指定的字段

json.father_region_code SRegionCode.select(:id,:region_name).find_by(:id =>region_code.father_region_id)
 
返回结果:
father_region_code":{"id":1,"region_name":"河南"}}}
 

ruby select 方法,可用于先查询结果后,再次用条件限制的更多相关文章

  1. EFCore扩展Select方法(根据实体定制查询语句)

    EFCore扩展Select方法(根据实体定制查询语句)  通常用操作数据库的时候查询返回的字段是跟 我们的定义的实体是不一致的,所以往往针对UI或者接口层创建大量的Model, 而且需要手动对应字段 ...

  2. Thinkphp中的volist标签(查询数据集(select方法)的结果输出)用法简介

    参考网址:http://camnpr.com/archives/1515.html 通常volist标签多用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数 ...

  3. 解析oracle对select加锁的方法以及锁的查询 转

    转自 https://www.jb51.net/article/37587.htm 本篇文章是对oracle对select加锁的方法以及锁的查询进行了详细的分析介绍,需要的朋友参考下 解析oracle ...

  4. 雷林鹏分享:Ruby CGI方法

    Ruby CGI方法 以下为CGI类的方法列表: 序号方法描述 1CGI::new([ level="query"]) 创建 CGI 对象.query可以是以下值: query: ...

  5. [c#基础]DataTable的Select方法

    引言 可以说DataTable存放数据的一个离线数据库,将数据一下加载到内存,而DataReader是在线查询,而且只进形式的查询,如果后退一步,就不可能了,DataTable操作非常方便,但也有缺点 ...

  6. 学习笔记_Java get和post区别(转载_GET一般用于获取/查询资源信息,而POST一般用于更新资源信息)

    转载自:[hyddd(http://www.cnblogs.com/hyddd/)] 总结一下,      Get是向服务器发索取数据的一种请求      而Post是向服务器提交数据的一种请求,在F ...

  7. HTML DOM select() 方法

    定义和用法 select() 方法用于选择该元素中的文本. 语法 textareaObject.select() 实例 下面的例子可选择文本框中的文本: <html> <head&g ...

  8. getField()和select()方法的区别

    在ThinkPHP中,查询数据库是必不可少的操作. 那么,getField()方法和select()方法都是查询的方法,到底有什么不同呢? 案例来说明: A.select()方法 例子1 $acces ...

  9. input和textarea标签的select()方法----选中文本框中的所有文本

    JavaScript select()方法选中文本框中的所有文本 <input>和<textarea>两种文本框都支持select()方法,这个方法用于选择文本框中的所有文本 ...

随机推荐

  1. 洛谷P1897电梯里的爱情题解

    题目 这个题是一个搜索题,可以先算出最高楼层,并算出不重复的楼层的个数,要注意的一点就是一定不要把0楼算在内. 代码 #include<iostream> #include<cstr ...

  2. Android学习第6天

    创建一个新的activity 四大组件需要在清单文件中配置 可在清单文件中配置多个启动图标过单个启动图标 Activity下的lable和icon属性可以和Application节点的属性不一样,默认 ...

  3. 【XSY1528】azelso 概率&期望DP

    题目大意 有一条很长很长的路(出题人的套路),你在\(0\)位置,你要去\(h\)位置. ​ 路上有一些不同的位置上有敌人,你要和他战斗,你有\(p\)的概率赢.若你赢,则你可以走过去,否则你会死.还 ...

  4. 【BZOJ1426】收集邮票 期望DP

    题目大意 有\(n\)种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是\(n\)种邮票中的哪一种是等概率的,概率均为\(\frac{1} ...

  5. 【Gym 100971G】Repair

    BUPT 2017 summer training (for 16) #1B 题意 Alex is repairing his country house. He has a rectangular ...

  6. Codeforces | CF1010C 【Border】

    这道题大致题意是给定\(n\)个十进制整数和一个进制数\(k\),可以用无数多个给定的十进制整数,问这些十进制整数的和在模k意义下有多少种不同的结果(\(k\)进制下整数的最后一位就是这个数模\(k\ ...

  7. HDU1285确定比赛名次

    确定比赛名次                                Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/ ...

  8. 「TJOI2015」组合数学 解题报告

    「TJOI2015」组合数学 这不是个贪心吗? 怎么都最小链覆盖=最大点独立集去了 注意到一个点出度最多只有2,可以贪心一下出度的去向 按读入顺序处理就可以,维护一个\(res_i\)数组,表示上一行 ...

  9. Nio再学习之NIO的buffer缓冲区

    1. 缓冲区(Buffer): 介绍 我们知道在BIO(Block IO)中其是使用的流的形式进行读取,可以将数据直接写入或者将数据直接读取到Stream对象中,但是在NIO中所有的数据都是使用的换冲 ...

  10. A1009. Product of Polynomials

    This time, you are supposed to find A*B where A and B are two polynomials. Input Specification: Each ...