1

たとえば、モデルの検証に次のコードがあります。

  validates :fb_user_id, :uniqueness => {:scope => :campaign_id}

ただしcampaign_id、別のユーザーに対して値が -1 で、検証例外が発生する可能性があります。このようなことは可能ですか?

 validates :fb_user_id, :uniqueness => {:scope => :campaign_id}, if :campaign_id != -1

validates ステートメントにインラインを入れることはif conditionsできますか、それができない場合はどうすればいいですか?

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 に答える