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]}")
それがすべて入力されたパラメータと一致しますが、空の文字列パラメータを無視するようにそれを構築するための良い方法はありますか?今私が名字「John Smith」を入力すると、「John Jones」と「Jane Smith」が手に入ります。
ありがとう、これは、paramsから入ってくる空の文字列をフィルタリングします。私がしなければならなかった唯一の調整は、参加する言葉が私の目的のためにANDでなければならないということでした。私の元の質問ではっきりしていないかもしれません。 また、ActiveRecordのパラメータは独自のマップ可能ではないので、強力なパラメータを渡し、次にto_h 'params.permit(:something).to_h'を渡す必要があります –