Создание работ и обновление не удается из-за пользовательской проверки - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть интернет-магазин:

Проблема здесь связана с двумя таблицами, продуктом и размером

Размер продукта имеет множество размеров

размерпринадлежит_продукту

Администратор должен предоставить атрибуты продуктов плюс атрибуты вложенных размеров (:size_name и :quantity) при создании продукта

В модели продукта у меня есть это "custom "validation:

validate :at_least_one_size

def at_least_one_size
  if self.sizes.empty?
    errors.add(:base, :require_size)
  end
end

Каждый раз, когда продукт продается, соответствующий размер уменьшается ...

И когда его больше нет, товара нет в наличии ...

Теперь, если я захочу снова добавить товар и обновить свой продукт новыми размерами, я сталкиваюсь с пользовательской ошибкой проверки ...

Поскольку мой продукт не в размере, это как если быбольше не действителен, и я даже не могу его обновить ...

Я думал о чем-то вроде optional true в моем пользовательском методе, но это не правильно ... Что мне делать?

1 Ответ

0 голосов
/ 04 февраля 2019

Если вы не возражаете, я преобразую свой комментарий в ответ, чтобы не оставить вопрос без ответа.

Поскольку вам нужно проверять запись только при создании, вы можете использовать опцию on, он работает для пользовательских проверок тоже

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