Apparently my laptops touchpad was on so let me reword it:
In Ruby a blank string is not a null bit so if you set :default => ""
it will allow blank strings, which is what you consider a null string
even though there is no such thing. Which means if you want :default
=> "" you need to have your model validate with :allow_blank => false,
or you need to ALLOW_NULL 0 and remove the :default => "".
The preferable solution from both a security and proper application
standpoint is to tell both the model and the db that it doesn't want
null or blank strings because it's faster to have the model do blank?
than it is to hit the db and have it return and error and complete a
cycle (short-circuiting is a good thing.) The db protection is simply
to protect yourself against manual entries and edge cases in the
application.
On Mon, Oct 28, 2013 at 7:33 AM, Jordon Bedwell <envygeeks@gmail.com> wrote:
> In Ruby a blank string is a null note a null bit so you need if you
> set :default => "" it will allow blank strings, which means your model
> needs to validate with :allow_blank => false or you need to set the
> ALLOW NULL 0 on the field by doing `:null => false` without the
> ":default => true".
>
> The preferable solution from both a security and a proper application
> standpoint is to do tell both the model and the db that it doesn't
> want null or blank strings because a db error should protect against
> manual entries and the model would be quicker when testing for blank
> strings, you can do that with "validates :field, :allow_blank =>
> false, allow_nil => false"
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAM5XQnywzBW3iVBWUtr8kQmSm%2B3Nbp%2BmiWXJ%3DAXkuQ59Cm4wrg%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment