Rails 4, not saving @user.save when registering new user

Posted by Yuichi on Stack Overflow See other posts from Stack Overflow or by Yuichi
Published on 2013-10-29T21:50:57Z Indexed on 2013/10/29 21:54 UTC
Read the original article Hit count: 278

When I try to register an user, it does not give me any error but just cannot save the user. I don't have attr_accessible. I'm not sure what I am missing. Please help me.

user.rb

class User < ActiveRecord::Base
  has_secure_password
  validates :email, presence: true,
                    uniqueness: true,
                    format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i }
  validates :password, presence: true, length: {minimum: 6}
  validates :nickname, presence: true, uniqueness: true
end

users_controller.rb

class UsersController < ApplicationController
  def new
    @user = User.new
  end

  def create
    @user = User.new(user_params)             # Not saving @user ...
    if @user.save
      flash[:success] = "Successfully registered"
      redirect_to videos_path
    else
      flash[:error] = "Cannot create an user, check the input and try again"
      render :new
    end
  end

  private

  def user_params
    params.require(:user).permit(:email, :password, :nickname)
  end
end

Log:

Processing by UsersController#create as HTML
Parameters: {"utf8"=>"?",    "authenticity_token"=>"x5OqMgarqMFj17dVSuA8tVueg1dncS3YtkCfMzMpOUE=", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "nickname"=>"example"}, "commit"=>"Register"}
(0.1ms)  begin transaction
User Exists (0.2ms)  SELECT 1 AS one FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1
User Exists (0.1ms)  SELECT 1 AS one FROM "users" WHERE "users"."nickname" = 'example' LIMIT 1
(0.1ms)  rollback transaction

© Stack Overflow or respective owner

Related posts about ruby-on-rails-4

Related posts about strong-parameters