首页 > 解决方案 > 当我在参数中传递空值时,我的所有数据都显示在 rails

问题描述

def policy_details
  policy_details = Policy.where("policy_number LIKE ? or assured_name LIKE ? or application_number LIKE ? or proposer_name LIKE ?","%#{params[:policy_number].present?}%","%#{params[:assured_name]}%","%#{params[:application_number]}%",
                                  "%#{params[:proposer_name]}%")

  if policy_details.present?
    policy_details = policy_details.select(:assured_name, :policy_number, :application_number, :id, :issuance_date, :proposer_name, :policy_name, :base_premium)
  end
  output = {status: '10', data: policy_details}.to_json
  render json: output, status: :ok
end

标签: ruby-on-railsruby

解决方案


如果params[:assured_name]为 nil 或空字符串,则

"%#{params[:assured_name]}%"

变成

"%%"

由于%是通配符,因此对'%%'所有内容都进行点赞,然后您将获得结果中的所有记录。

数据库按预期运行。当没有assured_name.


推荐阅读