【发布时间】:2021-10-25 10:05:47
【问题描述】:
我有代码:
ApplyJob.includes(:job, cv_attachment: :blob)
.joins('INNER JOIN cities_jobs ON cities_jobs.job_id = apply_jobs.job_id')
.joins('INNER JOIN industries_jobs ON industries_jobs.job_id = apply_jobs.job_id')
.where('email = ? AND cities_jobs.city_id = ?
AND industries_jobs.industry_id = ?
AND apply_jobs.created_at BETWEEN ? AND ?',
applied_params[:email],
applied_params[:city],
applied_params[:industry],
d_start,
d_end)
def applied_params
params.permit(:email, :city, :industry, :date_start, :date_end)
end
当对应的params 是blank 时,如何忽略where 中的子句。如果使用if else 或case when 代码会很长
例如:如果applied_params[:email] 不存在,email = ? 将不会被提及。
【问题讨论】:
标签: ruby-on-rails performance activerecord rails-activerecord