Почему ActiveModel :: Errors.new (self) не работает с методами длины, количества и размера? - PullRequest
0 голосов
/ 13 октября 2018

Когда я работал с ActiveModel::Errors в Rails 5 и провел некоторое сравнение в методе count, length, size, я обнаружил, что

ActiveModel::Errors.new(self).count  ==> 0 #result

ActiveModel::Errors.new(self).length ==> undefined method `length' #error

ActiveModel::Errors.new(self).size   ==> 0 #result

Я пытался найти причину, но я не могу.Пожалуйста, помогите мне, почему length не работает, но count и size работают.

1 Ответ

0 голосов
/ 13 октября 2018

Это потому, что ActiveModel::Errors просто не реализует метод с именем length.

Если вы хотите Hash от объекта, чтобы использовать count, length и size, преобразуйте объект ActiveModel::Errors в Hash, используя .to_hash

Используйте документацию Rails , чтобы помочьизучить классы и утилиты, доступные в Rails.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...