Ruby on rails 无法将哈希对象与ActiveSupport::HashWithInferenceTaccess合并
我有一个哈希对象(类名哈希): 我有一个params对象(类名ActiveSupport::HashWithInferenceTaccess) 我想用deep_merge合并这些对象Ruby on rails 无法将哈希对象与ActiveSupport::HashWithInferenceTaccess合并,ruby-on-rails,ruby,hash,Ruby On Rails,Ruby,Hash,我有一个哈希对象(类名哈希): 我有一个params对象(类名ActiveSupport::HashWithInferenceTaccess) 我想用deep_merge合并这些对象 h1.深度合并(h2) 然后我得到: { :hot_products=>{:enabled=>true, :always_enable=>false, :order=>0}, :recent_products=>{:enabled=>true, :always_enable=
h1.深度合并(h2)
然后我得到:
{
:hot_products=>{:enabled=>true, :always_enable=>false, :order=>0},
:recent_products=>{:enabled=>true, :always_enable=>true, :order=>1},
:event_promotion=>{:enabled=>true, :always_enable=>false, :order=>2},
"hot_products"=>{"enabled"=>"1"},
"recent_products"=>{"enabled"=>"0"},
"event_promotion"=>{"enabled"=>"1"}
}
有人知道如何合并这两个对象吗?问题是
h1
有符号键,h2
有字符串键
将h1
设为hashwithindifferenceaccess
h1 = {
:hot_products=>{:enabled=>true, :always_enable=>false, :order=>0},
:recent_products=>{:enabled=>true, :always_enable=>true, :order=>1},
:event_promotion=>{:enabled=>true, :always_enable=>false, :order=>2}
}.with_indifferent_access
及
现在,您可以deep\u merge
散列,它将返回正确的结果
h1.deep_merge(h2)
{
"hot_products"=>{"enabled"=>"1", "always_enable"=>false, "order"=>0},
"recent_products"=>{"enabled"=>"0", "always_enable"=>true, "order"=>1},
"event_promotion"=>{"enabled"=>"1", "always_enable"=>false, "order"=>2}
}
问题是
h1
有符号键,h2
有字符串键
将h1
设为hashwithindifferenceaccess
h1 = {
:hot_products=>{:enabled=>true, :always_enable=>false, :order=>0},
:recent_products=>{:enabled=>true, :always_enable=>true, :order=>1},
:event_promotion=>{:enabled=>true, :always_enable=>false, :order=>2}
}.with_indifferent_access
及
现在,您可以deep\u merge
散列,它将返回正确的结果
h1.deep_merge(h2)
{
"hot_products"=>{"enabled"=>"1", "always_enable"=>false, "order"=>0},
"recent_products"=>{"enabled"=>"0", "always_enable"=>true, "order"=>1},
"event_promotion"=>{"enabled"=>"1", "always_enable"=>false, "order"=>2}
}
试试这个
h1=ActiveSupport::HashWithIndifferentAccess.new(h1)
h1.deep_merge(h2)
=> {"hot_products"=>{"enabled"=>"1", "always_enable"=>false, "order"=>0}, "recent_products"=>{"enabled"=>"0", "always_enable"=>true, "order"=>1}, "event_promotion"=>{"enabled"=>"1", "always_enable"=>false, "order"=>2}}
试试这个
h1=ActiveSupport::HashWithIndifferentAccess.new(h1)
h1.deep_merge(h2)
=> {"hot_products"=>{"enabled"=>"1", "always_enable"=>false, "order"=>0}, "recent_products"=>{"enabled"=>"0", "always_enable"=>true, "order"=>1}, "event_promotion"=>{"enabled"=>"1", "always_enable"=>false, "order"=>2}}