我正在rails 5
使用ruby 2.3.3
. 今天我添加了一个gem,有版本冲突所以我把gem拿出来了。从那时起,点符号等hash.test
不再起作用。它给NoMethodError: private method test called for {:test=>"value"}:Hash
如何再次使用点符号访问哈希?
我正在rails 5
使用ruby 2.3.3
. 今天我添加了一个gem,有版本冲突所以我把gem拿出来了。从那时起,点符号等hash.test
不再起作用。它给NoMethodError: private method test called for {:test=>"value"}:Hash
如何再次使用点符号访问哈希?
无论您使用点表示法来访问散列,都可能method_missing
用来捕获您的点表示法方法调用。但是一切都有test
方法,因为Kernel#test
存在并且一切都包括Kernel
;此外,几乎所有内容Kernel
都是私有的,因为Kernel
我们想假装是函数的方法所在。例如:
> 'pancakes'.test
NoMethodError: private method `test' called for "pancakes":String
我怀疑您的问题是您选择:test
作为哈希键。