我在模型验证中有这样的代码:
validates :fb_user_id, :uniqueness => {:scope => :campaign_id}
但是campaign_id
可能会出现不同用户的值-1,从而引发验证异常。
可以做这样的事情吗?
validates :fb_user_id, :uniqueness => {:scope => :campaign_id}, if :campaign_id != -1
我可以在验证声明中加入if conditions
内联,或者如果不可能,我该如何处理?
答案 0 :(得分:6)
按照MagicMarkker的想法,我找到了一个解决方案:
validates :fb_user_id, :uniqueness => {:scope => :campaign_id}, :if => :valCampaign?
def valCampaign?
if campaign_id == -1
return false # skip the validation
else
return true # run the validation
end
end