Ruby on Rails Monday, October 28, 2013

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"

On Mon, Oct 28, 2013 at 7:05 AM, Philip Rhoades <phil@pricom.com.au> wrote:
> People,
>
> I have included the devise gem in an app and it is going OK but I needed a
> name field as well as the email so I added it to the migration file:
>
> class DeviseCreateUsers < ActiveRecord::Migration
> def change
> create_table(:users) do |t|
> ## Database authenticatable
> t.string :name, :null => false, :default => ""
> t.string :email, :null => false, :default => ""
> .
> .
>
> and recreated the DB, the schema.rb:
>
> create_table "users", force: true do |t|
> t.string "name", default: "", null: false
> t.string "email", default: "", null: false
> .
> .
>
> confirms that the change looks sensible, however when I add a new user, I
> can do it without the user name! - how is that possible?
>
> Any help appreciated!
>
> Thanks,
>
> Phil.
> --
> Philip Rhoades
>
> GPO Box 3411
> Sydney NSW 2001
> Australia
> E-mail: phil@pricom.com.au
>
> --
> 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/065b9bd87fb07c98be71910158089f35%40localhost.
> For more options, visit https://groups.google.com/groups/opt_out.

--
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/CAM5XQnzj7_1o-hxEGNW%3DWP%3DQmJqhFGfHxXEOy%3DoCxsnpyLQr-Q%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment