Разобраться в обязательном поле для создания объекта rails console

Мне интересно, есть ли команда, которая скажет вам, какие поля вам нужно заполнить, чтобы создать объект>

Пример:

у меня есть User(name, password, email, zip code) таблица, со следующими проверками:

validates :name, :password, :email, presence: true

Для того, чтобы использовать: User.createЯ должен дать ему имя, пароль и адрес электронной почты, чтобы добиться успеха.

Поскольку у меня есть несколько таблиц с более чем 20 полями, и я не хочу проверять проверки каждый раз, когда я создаю объект, есть ли команда (для использования на консоли rails), которая перечисляет все поля, которые должны присутствовать?

1 ответ

Решение

Вы можете использовать метод валидаторов для PresenceValidator.

С такой моделью:

class Commentary < ActiveRecord::Base
  belongs_to :user
  belongs_to :match

  validates_presence_of :content, :match_id
end

Когда вы делаете:

 Commentary.validators
    .select { |validation| validation.to_s.include?('PresenceValidator') }
    .map{|validation| validation.attributes }
    .flatten

ты получаешь:

[:content, :match_id]

Это ваши обязательные поля при создании ActiveModel.

Другие вопросы по тегам