Ich mag würde eine bedingte benutzerdefinierte Validierung zu einem Modell hinzufügenRails 5: Hinzufügen bedingte benutzerdefinierte Validierungen
Rails ermöglicht Methoden zu schaffen, um zu erstellen benutzerdefinierte Validierungen
class Invoice < ApplicationRecord
validate :expiration_date_cannot_be_in_the_past
def expiration_date_cannot_be_in_the_past
if expiration_date.present? && expiration_date < Date.today
errors.add(:expiration_date, "can't be in the past")
end
end
Es ermöglicht auch bedingt zu erstellen Validierungen
class Order < ApplicationRecord
validates :card_number, presence: true, if: :paid_with_card?
def paid_with_card?
payment_type == "card"
end
end
Wie kann ich beides mischen?
Meine Vermutung etwas wie
validate :condition, if: :other_condition
sein würde, aber das schafft eine Syntax:
syntax error, unexpected end-of-input, expecting keyword_end