1

例如,我的模型验证中有此代码:

  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在 validates 语句中放置一个内联,或者如果不可能,我该怎么做?

4

1 回答 1

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
于 2012-12-14T21:14:20.713 回答