ruby-on-rails - 当我在参数中传递空值时,我的所有数据都显示在 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
解决方案
如果params[:assured_name]
为 nil 或空字符串,则
"%#{params[:assured_name]}%"
变成
"%%"
由于%
是通配符,因此对'%%'
所有内容都进行点赞,然后您将获得结果中的所有记录。
数据库按预期运行。当没有assured_name
.
推荐阅读
- python - 如何构建具有 80% 1 和 20% 0 随机序列的二进制图像?
- vuejs2 - 为 util 类编写笑话测试用例
- bitbucket-server - 修改 Bitbucket Cloud 上的预接收挂钩
- c# - 某些控件无法正确调整窗口大小,状态栏会无缘无故地创建空白,我还没有理解
- javascript - 如何在车把中将字符串解析为 html
- c# - 如何执行语音谷歌搜索
- maven - 未找到 Spring Boot 控制器
- jquery - 选择框的 JQuery 附加选项
- php - 使用未定义的常量 OCI_CRED_EXT - 假设 'OCI_CRED_EXT' laravel
- html - CSS 过渡缓入,但不缓出?