On Rails 5.
I have an Order
model with a description
attribute. I only want to validate it's presence if one of two conditions is met: if the current step is equal to the first step OR if require_validation is equal to true.
I can easily validate based on one condition like this:
validates :description, presence: true, if: :first_step?
def first_step?
current_step == steps.first
end
but I am not sure how to go about adding another condition and validating if one or the other is true.
something like:
validates :description, presence: true, if: :first_step? || :require_validation
Thanks!
You can pass a lambda to be evaluated as the
if
condition.Try:
If you have a lot case , you can design for validates
You can use a lambda for the
if:
clause and do an or condition.If you don't want to add one method as Jared say then you can try use lambda
Can you just wrap it in one method? According to the docs