# Condition in validation

**URL:** <https://www.ruby-forum.com/t/condition-in-validation/173888>\
**Category:** Rails\
**Created:** [August 17, 2009, 7:22pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888 "2009-08-17T19:22:17Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 17, 2009, 7:22pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/1 "2009-08-17T19:22:17Z")

</div>

Is this right?

validates\_uniqueness\_of :email, :message =\> “Email taken”, :unless =\>  
:email == ‘removed\_email\_address@domain.invalid’

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 17, 2009, 7:30pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/2 "2009-08-17T19:30:42Z")

</div>

On Aug 17, 6:22 pm, Pål Bergström [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Is this right?
> 
> validates\_uniqueness\_of :email, :message =\> “Email taken”, :unless =\>  
> :email == ‘removed\_email\_address@domain.invalid’

no. :unless must be the name of a method that returns whether or not  
to run the validation

Fred

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 17, 2009, 7:33pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/3 "2009-08-17T19:33:13Z")

</div>

Frederick C. wrote:

> On Aug 17, 6:22ï¿½pm, Pï¿½l Bergstrï¿½m [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> wrote:
> 
> > Is this right?
> > 
> > validates\_uniqueness\_of :email, :message =\> “Email taken”, :unless =\>  
> > :email == ‘removed\_email\_address@domain.invalid’
> 
> no. :unless must be the name of a method that returns whether or not  
> to run the validation
> 
> Fred

How would I write a condition that doesn’t check the uniqueness of a  
mail address if the address is ‘removed\_email\_address@domain.invalid’

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 17, 2009, 7:38pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/4 "2009-08-17T19:38:54Z")

</div>

On Aug 17, 6:33 pm, Pål Bergström [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > Fred
> 
> How would I write a condition that doesn’t check the uniqueness of a  
> mail address if the address is ‘removed\_email\_address@domain.invalid’

you write a method that returns true if the email is that magic value

Fred

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 17, 2009, 9:49pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/5 "2009-08-17T21:49:26Z")

</div>

validates\_uniqueness\_of :email, :message =\> “Email taken”, :unless =\>  
“email == ‘removed\_email\_address@domain.invalid’”

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 17, 2009, 7:41pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/6 "2009-08-17T19:41:33Z")

</div>

Frederick C. wrote:

> On Aug 17, 6:33ï¿½pm, Pï¿½l Bergstrï¿½m [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> wrote:
> 
> > > Fred
> > 
> > How would I write a condition that doesn’t check the uniqueness of a  
> > mail address if the address is ‘removed\_email\_address@domain.invalid’
> 
> you write a method that returns true if the email is that magic value
> 
> Fred

I see. Now I understand. 🙂 Thanks.

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 17, 2009, 10:27pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/7 "2009-08-17T22:27:56Z")

</div>

Samer A. wrote:

> validates\_uniqueness\_of :email, :message =\> “Email taken”, :unless =\>  
> “email == ‘removed\_email\_address@domain.invalid’”

Nope.

## Best,

Marnen Laibow-Koser  
[http://www.marnen.org](http://www.marnen.org)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 18, 2009, 5:31pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/8 "2009-08-18T17:31:57Z")

</div>

Unless I am severely mistaken, you can’t use :unless as a condition in  
the validation anyway. It would need to be :if =\> some\_condition,  
where the some\_condition method would return true/false.

On Aug 17, 1:22 pm, Pål Bergström [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![paulbutcher](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a5b964/32.png) [@paulbutcher](https://www.ruby-forum.com/u/paulbutcher)\
**Post date:** [August 18, 2009, 5:50pm UTC](https://www.ruby-forum.com/t/condition-in-validation/173888/9 "2009-08-18T17:50:34Z")

</div>

Billee D. wrote:

> Unless I am severely mistaken, you can’t use :unless as a condition in  
> the validation anyway. It would need to be :if =\> some\_condition,  
> where the some\_condition method would return true/false.
> 
> On Aug 17, 1:22ï¿½pm, Pï¿½l Bergstrï¿½m [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

It worked with :unless, as described in the API.
