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":"河南"}}}
     
  • 相关阅读:
    symbol
    es6的对象新增的方法
    关于一个有趣的知识
    我为什么要记笔记?
    学习 yjango 博士的学习方法后的总结
    关于写博客的好处
    这是一片博客的测试
    【牛客19】(思路)
    【HDOJ】find your present (2)(思路题)
    【素数】Eratosthenes筛选
  • 原文地址:https://www.cnblogs.com/lmg-jie/p/8568419.html
Copyright © 2011-2022 走看看