NoMethodError:对于Hash,未定义的方法`except'

Aja*_*jax 2 ruby hash

在Ruby中使用Hash时除外

d = {}
d["a"]=1234
d["b"]=34 
d["c"]=3 
d.except(:b,:c)
Run Code Online (Sandbox Code Playgroud)

我得到NoM​​ethodError:

NoMethodError: undefined method `except' for {"a"=>1234, "b"=>34, "c"=>3}:Hash  from (irb):6    from
/Users/niranjan/.rvm/rubies/ruby-1.9.3-p551/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Leo*_*ito 8

except是一个Rails方法(确切地说ActiveSupport).在Rails控制台中执行时,您的代码不会重现该错误:

> d = {}
# => {} 
> d["a"]=1234
# => 1234 
> d["b"]=34 
# => 34 
> d["c"]=3 
# => 3 
> d.except(:b,:c)
# => {"a"=>1234, "b"=>34, "c"=>3} 
Run Code Online (Sandbox Code Playgroud)