所有
我收到了这个请求:
{"utf8"=>"✓", "search"=>{"name_equals"=>"", "age_equals"=>""}}
我想检查的是,如果name_equals
或age_equals
设置了值,只需知道
PARAMS [:检索]。 search
中的值可能比示例中的值多。
我希望有人可以帮助我,谢谢。
-E- 你是对的,我知道我选择:
blank = params[:search].values.all?(&:blank?) if params[:search] != nil
@search = BillingDestination.search(blank ? nil : params[:search])
塔斯和ŁukaszNiemier之间的结合回答;)Tass忘记了.values和Lukasz&登录。
我怎么能在一条线上做到这一点?
答案 0 :(得分:2)
使用
params['search'].values.any?(&:blank?)
答案 1 :(得分:1)
只需检查是否存在所有值。
params[:search].all? { |k, v| v.present? }
为此,您也可以检查值
params[:search].values.all?(&:present?)
错过了&确实签了。
答案 2 :(得分:0)
您可以使用:
if params['search'] && (params['search']['name_equals'] && params['search']['name_equals'])
# do something
end
使用:
# get all keys
all_the_keys = params['search'].keys
# or if you only want ones that contain something
all_the_non_blank_keys = params['search'].select {|k,v| !v.blank?}