joep
December 3, 2007, 4:43pm
1
Hey,
I’m trying to update the validation of one of my models to not allow
emails from “bad-domain.com ”
I already have this in my model:
validates_format_of :email,
:with =>
%r{.(edu|com|gov|tv|biz|net|org|info|us|name|uk|jobs|tk|nz|de)$}i,
:message => “Must be a valid email address”
That is working. But what kind of validation can I use to make sure
that the :email doesn’t contain “bad-domain.com ”?
joep
December 3, 2007, 5:47pm
2
Joe P. wrote:
Hey,
I’m trying to update the validation of one of my models to not allow
emails from “bad-domain.com ”
I already have this in my model:
validates_format_of :email,
:with =>
%r{.(edu|com|gov|tv|biz|net|org|info|us|name|uk|jobs|tk|nz|de)$}i,
:message => “Must be a valid email address”
That is working. But what kind of validation can I use to make sure
that the :email doesn’t contain “bad-domain.com ”?
Hmm, I was wondering if validates_exclusion_of would work, or is that
for something else?
joep
December 4, 2007, 5:50pm
3
It seems like this would be easy, I just can’t find info on how to do
this…
joep
December 4, 2007, 8:35pm
4
On Dec 3, 2007, at 7:43 AM, Joe P. wrote:
That is working. But what kind of validation can I use to make sure
that the :email doesn’t contain “bad-domain.com ”?
Unless I’m missing what you’re trying to do, it would be the exact
same approach:
validates_format_of :email,
:with => /bad-domain.com$/i
:message => “bad-domain.com not allowed”
You might want to add this too (verifies it’s at least [email protected] ) and
then your original one can test the TLD specifically.
validates_format_of :email,
:with => /^[A-Z0-9.%-]+@[A-Z0-9. %-]+.[A-Z]{2,4}$/i
:message => “Must be a valid email address”
Hmm, I was wondering if validates_exclusion_of would work, or is that
for something else?
This is primarily for testing value lists. It verifies that the
submitted value is within a specified set of options.
–
def gw
acts_as_n00b
writes_at(www.railsdev.ws)
end
joep
December 5, 2007, 6:24pm
5
Unless I’m missing what you’re trying to do, it would be the exact
same approach:
validates_format_of :email,
:with => /bad-domain.com$/i
:message => “bad-domain.com not allowed”
Won’t this just validate that the email matches this format? I’m trying
to get it so it accepts valid email addresses, but not if they’re from
“baddomain.com ”
joep
December 5, 2007, 7:37pm
6
Greg W. wrote:
On Dec 5, 2007, at 9:24 AM, Joe P. wrote:
“baddomain.com ”
Duh. Brain fade. Use validates_each.
validates_each :email do |model, attr, value|
if value =~ /baddomain.com/i
model.errors.add(attr, “bad-domain.com not allowed”)
end
end
–
def gw
acts_as_n00b
writes_at(www.railsdev.ws)
end
Thanks, it works like a charm. I didn’t even think of using
“validates_each”
joep
December 5, 2007, 7:06pm
7
On Dec 5, 2007, at 9:24 AM, Joe P. wrote:
“baddomain.com ”
Duh. Brain fade. Use validates_each.
validates_each :email do |model, attr, value|
if value =~ /baddomain.com/i
model.errors.add(attr, “bad-domain.com not allowed”)
end
end
–
def gw
acts_as_n00b
writes_at(www.railsdev.ws)
end