我相信这应该这样做:
validates :contact_id,
:presence => true,
:uniqueness => {:message => 'has an account already.'},
:if => :invalid?
def invalid?
state == 'invalid'
end
你也可以内联到:
validates :contact_id,
:presence => true,
:uniqueness => {:message => 'has an account already.'},
:if => lambda{ state == 'invalid' }
希望这有助于。
如果你要做到这一点,当状态not
无效的,那么你可以做的是两种方式:
validates :contact_id,
:presence => true,
:uniqueness => {:message => 'has an account already.'},
:unless => :invalid?
或者,你可以改变它了一点,有一个有效的消息,这可能是我喜欢:
validates :contact_id,
:presence => true,
:uniqueness => {:message => 'has an account already.'},
:if => :valid?
def valid?
state != 'invalid'
end
好吧,所以我很困惑,如果我需要验证才能生效,只有当以前的应用程序“不”有一个状态为无效......所以它= =! – Trace 2012-03-27 02:09:58
对,因为当它不是无效的,那么你只会说状态!='无效' – 2012-03-27 21:14:38