2011-09-20 51 views
2
ruby-1.9.2-p180 :007 > a = {:a => 10, :b => 20} 
=> {:a=>10, :b=>20} 
ruby-1.9.2-p180 :008 > a.reverse_merge({:c => 30}) 
NoMethodError: undefined method `reverse_merge' for {:a=>10, :b=>20}:Hash 
    from (irb):8 
    from /home/sayuj/.rvm/rubies/ruby-1.9.2-p180/bin/irb:16:in `<main>' 

如何修复此问题NoMethodErrorRuby - NoMethodError:undefined方法`reverse_merge'

回答

1
reverse_merge 

是一个Rails方法,而不是Ruby方法。使用普通旧merge

+0

我认为反向合并是散列的方法。不是吗? – Sayuj

+1

@Sayuj:Rails将此方法添加到'Hash'类。这叫做monkeypatching。 http://apidock.com/rails/Hash向您展示了Rails添加到哈希的方法,而不是那些Ruby自己提供的方法。该URL上的 –