1

我从请求中收到了这样的参数

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

我需要清除它,因为元搜索 gem 不能正常工作

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

2 回答 2

4

我有一个使用双重选择的解决方案:

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

参数[:搜索].select!做|k, v|
  v.选择!做 |vv|
    !vv.empty?
  结尾
  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 回答