我已经看到了许多答案,比如删除任何值为nil或""的键,但这不是我想要的。
我有一个这样的散列
{"firstname"=>"Jie",
"lastname"=>"Pton",
"email"=>"jami4@yahoo.com",
"country_id"=>"1",
"payment_method"=>"0",
"insight_id"=>"",
"password"=>""}我只想从散列中删除密码属性,如果它为空,则NOT ALL为空
发布于 2016-12-23 14:09:37
更通用的解决方案:对于作为输入给出的散列(我假设它是params,所以让我们称其为params)和在为空时要删除的字段列表:
TO_REMOVE_EMPTY = %w|password|
params.delete_if { |k, v| TO_REMOVE_EMPTY.include?(k) && v.empty? }发布于 2016-12-23 14:06:16
hash.delete('password') if hash['password'].blank?发布于 2016-12-23 16:08:54
您也可以使用此解决方案:
hash.reject { |k,v| v.nil? || v.empty? }https://stackoverflow.com/questions/41295992
复制相似问题