Множество перечислений, называемых доступом - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть перечисление с именем access, определенное в модели учетной записи.

enum access: [:basic, :silver, :gold, :platinum]

, который работает нормально, например, account.gold! устанавливает значение в «gold», а затем account.access возвращает «gold».Соответственно, я должен быть в состоянии перечислить хэш значений доступа с множественным числом acesss, но account.accesses, возвращает

NoMethodError: undefined method `accesses' for #<Account:0x00007f9e7827e408>
Did you mean?  access
               access?
           access=

Если я сделаю 'access'.pluralize, он возвращает accesses, так почемуaccount.accesses не работает?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Метод множественного числа должен вызываться для класса модели (не для экземпляра класса):

2.5.3 :001 > Account.accesses
 => {"basic"=>0, "silver"=>1, "gold"=>2, "platinum"=>3}

См. Пример здесь .См. Действительный код здесь .Он определяет метод класса.

0 голосов
/ 26 ноября 2018

Я думаю, что это должно работать, если вы попробуете форму множественного числа:

Account.accesses

Отображения отображаются через метод класса с множественным именем атрибута.

Проверьте руководство здесь: https://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html

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