Как получить список обязательных полей в модели в Rails? - PullRequest
3 голосов
/ 29 октября 2019

Я использую Ruby on Rails, и у меня есть модель с множеством различных обязательных полей. Есть ли способ получить список только тех полей, которые являются обязательными? Я не верю, что ModelName.validators работает, потому что мне нужны только те поля, которые являются обязательными. Я также пробовал ModelName.column_names, но это дает мне все поля.

Ответы [ 2 ]

3 голосов
/ 29 октября 2019

Я думаю validators работает, но вы должны фильтровать для presence валидаторов:

ModelName.
  validators.                                        
  grep(ActiveRecord::Validations::PresenceValidator). # only `presence`
  flat_map(&:attributes)                              # only the attribute names
1 голос
/ 29 октября 2019

Как получить список обязательных полей в модели в Rails?

Вы можете получить его по телефону:

# Refactor if needed
Model.validators.select{ |v| v.instance_of?(ActiveRecord::Validations::PresenceValidator) }.map{ |v| v.attributes }.flatten
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...