1

リクエストからそのようなパラメーターを受け取りました

params[:search] = {"user_id_in"=>[""], "status_in"=>[""], "priority_in"=>["", "8"]}

metasearch gem が正しく動作しないため、クリアする必要があります

params[:search] = {"priority_in"=>["8"]}
4

2 に答える 2

4

二重選択を使用するソリューションがあります:

params[:search] = {"user_id_in"=>[""], "status_in"=>[""], "priority_in"=>["", "8"]}

params[:検索].select! |k, v|をする
  v.select! する |vv|
    !vv.空?
  終わり
  v.長さ > 0
終わり
于 2012-09-06T12:37:43.463 に答える
2

機能的アプローチ(もちろん、インプレース更新を要求してからの最後の割り当てを除く):

pairs = params[:search].map { |k, vs| [k, vs.reject(&:blank?)] }
params[:search] = Hash[pairs.select { |k, vs| vs.present? }]
于 2012-09-06T12:51:49.860 に答える