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.