Validation for one or another field

Hello everyone, in my model I have amongst other fields, the :variant_id
and
:cart_id, I want to validate their presences but in my app the user only
needs to set one of them, so I can’t make it validates_presence_of
:variant_id, :cart_id.

I am sure there’s a solution for that, please tell me if you know!

Thanks!

Hello everyone, in my model I have amongst other fields, the :variant_id and
:cart_id, I want to validate their presences but in my app the user only needs to
set one of them, so I can’t make it validates_presence_of :variant_id, :cart_id.

I am sure there’s a solution for that, please tell me if you know!

You can either write a custom validation method that returns false if
both are unset or you could add some :if => {…} code to your
validation line so it only validates one field if the other is blank.
You’d need that on both validation lines and your error message would be
a little confusing suggesting the user needs to pick both.

If it was me, I’d go custom so I could put up a reasonable error
message.