3
使用填充了已注册选民的PG数据库。仅当搜索字符串不为空时,ActiveRecord(SQL)才会查询多列
试图设置它,所以我可以通过名字,姓氏,邮编或城市进行搜索。我希望能够找到符合所有输入参数的所有选民,但无法处理空的搜索字段。
where("zip LIKE ? OR city LIKE ? OR last_name LIKE ? OR first_name LIKE ?",
"#{params[:zip]}","#{params[:city]}","#{params[:last_name]}","#{params[:first_name]}")
有没有更好的方式来构建它,以便它匹配所有输入的参数,但忽略空字符串参数?现在,如果我输入名字和姓氏'约翰史密斯',我会得到'约翰琼斯'和'简史密斯'。
谢谢,这将滤除从参数中进来的空串。我必须做的唯一的调整是加入的词应该是为了我的目的。可能在我原来的问题中没有清楚。 另外值得注意的是,ActiveRecord参数本身无法映射,它们必须通过强参数传递,然后to_h'params.permit(:something).to_h' –