zoukankan      html  css  js  c++  java
  • ruby select 方法,可用于先查询结果后,再次用条件限制

    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":"河南"}}}
     
  • 相关阅读:
    Ant: Class not found: javac1.8
    (转)ant 使用指南
    炼数成金(dataguru)IT技能修炼
    [原创]记我的6年测试经历
    CentOS6.5 安装并配置vsftpd
    炫龙炎魔T1笔记本 Win7 系统安装
    Oracl数据库+PL/SQL安装与配置
    C# 面试题
    Linux安装Python3后,如何使用pip命令
    CentOS7 Python2 和Python3 共存(Python3安装)【转】
  • 原文地址:https://www.cnblogs.com/lmg-jie/p/8568419.html
Copyright © 2011-2022 走看看