【发布时间】:2016-10-17 01:33:00
【问题描述】:
我有一个 Sessions 控制器,它需要使用 User 模型中定义的 has_secure_password 的 .authenticate 方法创建会话进行身份验证,如下所示:
编辑:
class User < ApplicationRecord
before_save { self.email = email.downcase }
# Relationships
has_secure_password
has_many :pedidos
# Validations
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :nome, presence: true
validates :empresa, presence: true
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX }
validates :cpf, presence: true, length: { minimum: 11, maximum: 14 }
validates :password, presence: true, length: { minimum: 6 }
def admin?
self.admin
end
end
会话控制器
def create
user = User.find_by(email: params[:sessions][:email])
if user && user.authenticate(params[:sessions][:password])
flash[:success] = "Seja bem vindo(a), #{user.nome}!"
session[:user_id] = user.id
redirect_to user
else
flash.now[:danger] = 'Não foi possível realizar o login, '
flash.now[:danger] += 'combinação usuário/senha inválido'
render 'new'
end
end
现在我创建了一个管理员/用户控制器,我想执行数据库操作而无需输入 password 和 password_confirmation 字段。在当前情况下,我收到错误消息说“密码和密码确认不能为空”
我应该如何进行?谢谢。
【问题讨论】:
-
您好,欢迎来到 Stack Overflow。您提到您的用户方法使用
has_secure_passwod并说“如下所示”,但您包含的示例代码不包含您的User模型 - 只是控制器。您能否编辑您的问题并添加用户模型的代码?这将帮助我们查明您的错误。 -
请点击以下链接。 stackoverflow.com/questions/10442466/… 标题##
-
请也为您的用户模型发布代码
-
谢谢大家,我已经添加了User模型的代码,很抱歉。
标签: ruby-on-rails ruby devise rails-authorization