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 <[email protected]> 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: [email protected] > > -- > 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 [email protected]. > To post to this group, send email to [email protected]. > 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 [email protected]. To post to this group, send email to [email protected]. 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.

