ruby on rails - User's Email Parameter Not Been Persisted Into The Database -


i created users model in rails 4.1.8 application attributes email , password. fired rails console, user = user.new(email: "user@example.com" , password: "example") work user.save saves password , omits email. below model, migrated database file , rails console log.

user model

class user < activerecord::base     before_save {self.email = email.downcase! }     valid_email_regex = /\a[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i     validates :email, presence: true, length: { maximum: 255 },                          format:{with: valid_email_regex},                           uniqueness: { case_sensitive: false }      has_secure_password     validates :password, presence: true, length: { minimum: 6 } end 

database file (for user)

class createusers < activerecord::migration   def change     create_table :users |t|      t.string :email, unique: true      t.string :password_digest       t.timestamps null: false    end   end end 

rails console log

<r.new(email: "user@example.com" , password: "example") => #<user id: nil, email: "user@example.com", password_digest:         "$2a$10$jxwd/orit z2hklhk4b4nf.p.dwb6s35yto.ebywup0i...", created_at: nil, updated_at: nil> irb(main):008:0> user.save (1.0ms)  begin user exists (1.0ms)  select  1 one `users`  `users`.`email` =   'user@example.com' limit 1 sql (46.0ms)  insert `users` (`created_at`, `password_digest`,  `updated_at`) values ('2015-07-20 20:54:35', '$2a$10$jxwd/oritz2hklhk4b4nf.p.dwb6s35yto.eb ywup0i.gmtolsnka', '2015-07-20 20:54:35') (89.1ms)  commit => true 

users controller

class userscontroller < applicationcontroller   def new   end    private      def user_params       params.require(:user).permit(:email)     end end 

looking @ log email parameter not inserted into; please, appreciated.

try following in user model:

before_save {self.email = email.downcase } # no "!"  

downcase! edits variable on called , not return downcased string unless there downcase (i.e., if use on lower-case email, returns nil , based on console output, happening). downcase alone should fine.

downcase! on api


Comments