我怎样才能有多个unless
语句?例如,在我的模型中,我有:
validates :email, unless: :guest?
但是如果尝试两个方法除外:
validates :email, unless: (:guest? || :skip_validation)
它不起作用。如果:guest?
为false但:skip_validation
为true,则验证会产生错误,需要有效的电子邮件。
我通过组合:guest?
和:skip_validation
方法并将其传递给验证来实现它,但是如果除非:可以采用多种方法,这很奇怪吗?
答案 0 :(得分:2)
因此,如果用户不是来宾或我们不想跳过验证,您希望验证电子邮件if !:guest || !:skip_validation
。因此,除非条件是:
unless !(!:guest? || !:skip_validation)
使用De Morgan的法律,我们可以将其简化为:
unless :guest? && :skip_validation
所以基本上我们必须使用and
而不是or
。