簡體   English   中英

用rails在ruby上刪除params哈希中的鍵和值

[英]remove the key and value in the params hash with ruby on rails

你好,如何刪除空值或在rails中的ruby中的nil我嘗試拒絕該方法,但是它不起作用,還有其他方法嗎?

這是我的帶有空值的哈希

 {
 first_name: {
         1: "david",
         2: ""
       },
  last_name: {
        1: "david",
        2: ""
       },
  role: {
     1: "dev",
     2: ""
   },
  bio: {
    1: "commercial",
    2: ""
  },

謝謝

hash.each {|_, v| v.delete_if {|_, v| v == ""}}

#=> {"first_name"=>{1=>"david"}, "last_name"=>{1=>"david"}, "role"=>{1=>"dev"}, "bio"=>{1=>"commercial"}}
class Hash
  def compact(opts={})
    inject({}) do |new_hash, (k,v)|
      if !v.blank?
        new_hash[k] = opts[:recursive] && v.class == Hash ? v.compact(opts) : v
      end
      new_hash
    end
  end
end

hash = {
    :first_name=> {
        1=> "david",
    2=> ""
},
    :last_name=> {
    1=> "david",
    2=> ""
},
    :role=> {
    1=> "dev",
    2=> ""
},
    :bio=> {
    1=> "commercial",
    2=> ""
}
}


hash.compact(:recursive=>true) 

會給

{
  :first_name => {
    1 => "david"
  },
   :last_name => {
    1 => "david"
  },
        :role => {
    1 => "dev"
  },
         :bio => {
    1 => "commercial"
  }
}

來源: 從哈希/ YAML中刪除所有空元素?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM