I am new in ruby. I have tried to make a login page. But I am getting this error.
Here is my coding -
users_controller.rb
def login
@title = 'Login'
render layout: 'login'
end
def create_login
#user = User.find_by(username: params[:user][:username].downcase).first
user = User.where("username = ?", params[:user][:username].downcase).first
if user && user.authenticate(params[:user][:password])
# Log the user in and redirect to the user's show page.
log_in @user
redirect_to @user
else
flash[:danger] = 'Invalid email/password combination' # Not quite right!
render 'new'
end
end
router.rb
get 'login' => 'users#login'
post 'login' => 'users#create_login'
sessions_helper.rb
def log_in(user)
session[:user_id] = user.id
end
user.rb
class User < ActiveRecord::Base
validates :name, presence: true
validates :name, length: { minumum:2, maximum: 30 }
#validates :password, presence: true
#validates :password, length: { in: 6..20 }
validates :password, :presence =>true,
:length => { :minimum => 6, :maximum => 40 },
:confirmation =>true
#validates_presence_of :password_confirmation, if: :password_changed?
#validates_uniqueness_of :username
#validates :email, confirmation: true
validates :username, :presence => true,
:uniqueness => { :case_sensitive => false }
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, :presence => true,
:format => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
validates :dob, presence: true
#dob_regex = /\d{2}\-\d{2}\-\d{4}/
#validates :dob, :presence => true, :format => { :with => dob_regex }
end