【发布时间】:2016-04-12 08:20:10
【问题描述】:
我是红宝石新手。我试图制作一个登录页面。但是我收到了这个错误。
这是我的编码 -
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
【问题讨论】:
-
请发布您的
user.rb模型。 -
@Pavan 我正在更新我的问题。请查看
user.rb型号 -
好吧,你应该在
user.rb模型中拥有authenticate方法。您是否按照任何教程在您的应用中创建此身份验证逻辑? -
看起来你应该包括一些身份验证宝石。
-
您应该创建您的身份验证方法。 railscasts.com/episodes/250-authentication-from-scratch
标签: ruby-on-rails ruby