1. 用于条件过滤
@works=DworkPro.all.order(:work_type)
@work_pro=@works.select{ |x| x.job_type == 7}
2. select 和find 的区别
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. 只查询指定的字段
father_region_code":{"id":1,"region_name":"河南"}}}