В настоящее время я работаю над проектом, в котором у меня есть гарантия, прикрепленная к устройству через ассоциацию has_one (у устройства есть одна гарантия и гарантия принадлежат устройству). Все работает отлично, за исключением того, что один из моих коллег предложил мне добавить подтверждение валидации на атрибут device_warranty_ends устройства_видимости, чтобы убедиться, что по крайней мере это поле было заполнено, если у устройства была гарантия.Rails Валидация для has_one и принадлежит ассоциации
Однако проблема заключается в том, что теперь вы не можете создать устройство без гарантии, и это, очевидно, не является реальной жизненной ситуацией, поскольку устройство может существовать без гарантии. Итак, мой вопрос заключается в том, как я могу проверить подлинность device_warranty_ends только тогда, когда к устройству привязано устройство.
Другими словами, создание устройства не должно заботиться о гарантиях, за исключением случаев, когда кто-то действительно прикрепляет гарантию к устройству (заполняя поля), тогда и только тогда я должен проверить наличие device_warranty_ends: true.
Спасибо.
Вот мой текущий код проверки:
class DeviceWarranty < ActiveRecord::Base
belongs_to :device
validates :warranty_ends_at, presence: true
end
class Device < ActiveRecord::Base
has_one :device_warranty
Поделитесь своим текущим кодом проверки. – cortex
@cortex добавил код – rii