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' –