我将rails 5
与ruby 2.3.3
一起使用。今天我添加了一个宝石,有一个版本冲突,所以我把宝石拿出来了。从那时起,诸如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
作为哈希键。