Как настроить проверку для нескольких конкретных длин - PullRequest
0 голосов
/ 26 сентября 2018

Я настраиваю некоторую проверку в моей модели, и мне интересно, как выполнить проверку для 3 различных конкретных длин?Я хочу подтвердить 10, 12 или 13 специально для СКП.Я вижу в документах, как это сделать специально.

class Product < ApplicationRecord
  validates :name, presence: true, length: { maximum: 1024 }, uniqueness: true
  validates :upc, presence: true, numericality: { only_integer: true }, length: { is: 10 }, uniqueness: true
  has_many :product_properties
  has_many :properties, through: :product_properties
end

Спасибо за любую помощь, которую вы можете мне оказать.

1 Ответ

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

Вам нужно написать собственный метод

validate :check_for_length

def check_for_length
  errors.add(:upc, :wrong_length) unless [10,12,13].include?(upc.length)
end

Теперь в вашем en.yml

en:
  activerecord:
    errors:
      models:
        product:
          attributes:
            upc:
              wrong_length: "your_message"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...