I rails3.0.4 and devise installed with following users table
create_table "users", :force => true do |t|
t.string "login"
t.string "email"
t.string "crypted_password", :null => false
t.string "password_salt", :null => false
t.string "persistence_token", :null => false
t.string "single_access_token", :null => false
t.string "perishable_token", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "database_authenticatable", :null => false
t.string "recoverable"
t.string "rememberable"
t.string "trackable"
t.string "reset_password_token"
end
The users table was not created by devise but I added the necessary
columns in migration.
And following settings in config/initializers/devise.rb
config.authentication_keys = [ :email]
But every time I try to sign up as a new user it throws:
2 errors prohibited this user from being saved: Login is too short (minimum is 3 characters) Login should use only letters, numbers, spaces, and .-_@ please.
Any ideas why it could happen?
Yes, the login is too short and/or contains the wrong characters 🙂
You enabled the devise built-in validations, and that’s what they validate. To use your own validations remove :validatable from your devise inclusion in app/models/user.rb
If you’re interested, the validation used by devise is defined in lib/devise/models/validatable.rb in the devise gem.
Should the validation not be the problem you’ll have to show the log of a user creation request, so that we can see what parameters are submitted.
EDIT: Oh I see, I misread – it’s about “login”. Well, see comments below.