It matches because it's true. The expressions states any number of digits 
before the end of line. It does not state exclusively digits.
On Aug 14, 2011, at 12:19 PM, Walter Lee Davis wrote:

> 
> On Aug 14, 2011, at 2:29 PM, Misha Ognev wrote:
> 
>> Hi! This problem(in model):
>> 
>> validates :some_digits_collection, :presence => true, :format => { :with
>> => /^\d*$/, :message => "Must contain only digits!" }
>> 
>> So, :some_digits_collection must match only digits. But when I puts
>> "123f"(for example) in my form, it matches too and there no errors! Why?
> 
> That's really curious. I tested your regexp at Rubular, and it really does 
> match and work the way you want it to. What gets stored in the database after 
> this passes? Perhaps the input value is being cast to an integer for storage, 
> and so the trailing letters are being stripped out. IF the validation happens 
> after the cast, that could explain it -- but only if the value that ends up 
> being stored is actually free of letters.
> 
> Walter
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-talk?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to