2017-02-20 27 views
0

Я использую rails 5 с ruby 2.3.3. Сегодня я добавил драгоценный камень, был конфликт версий, поэтому я взял драгоценный камень. С тех пор точечная нотация, такая как hash.test, больше не работает. Он дает NoMethodError: private method test called for {:test=>"value"}:Hash нотация нот рельсов больше не работает для доступа к значениям хэша дает NoMethodError

Как я могу получить доступ к хэшам с точечной нотацией еще раз?

+0

Какая драгоценность вы удалили? –

ответ

2

Что бы вы ни использовали, чтобы использовать точечную запись для доступа к хэшу, возможно, используйте method_missing, чтобы уловить ваши вызовы метода точечной обработки. Но у всего есть метод test, потому что Kernel#test существует и все включает Kernel; Кроме того, почти все в Kernel является частным, потому что Kernel - это метод, который мы хотим притвориться функциями. Например:

> 'pancakes'.test 
NoMethodError: private method `test' called for "pancakes":String 

Я подозреваю, что вы проблема ваш выбор :test в качестве хэш-ключа.