Утвердите присутствие одной области или другого (XOR)

Как я утверждаю присутствие одной области или другого, но не обоих и по крайней мере одного?

84
задан Ben Orozco 25 January 2010 в 17:28
поделиться

1 ответ

Ваш код будет работать, если вы добавляете условные валидации численности, как так:

class Transaction < ActiveRecord::Base
    validates_presence_of :date
    validates_presence_of :name

    validates_numericality_of :charge, allow_nil: true
    validates_numericality_of :payment, allow_nil: true


    validate :charge_xor_payment

  private

    def charge_xor_payment
      unless charge.blank? ^ payment.blank?
        errors.add(:base, "Specify a charge or a payment, not both")
      end
    end

end
146
ответ дан 24 November 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: