mysql - Ruby on Rails IF 语句验证检查
问题描述
所以我是 ruby on rails 的新手,我遇到了这个 if 语句的问题,基本上我要检查的是 sql 数据库中的确认令牌是否存在用于登录的电子邮件地址。如果它确实反弹您的电子邮件未经过验证的消息。单击电子邮件中的链接后,它将删除数据库中的令牌。然后您可以继续登录。我不能让它为我的生活工作。除验证检查外,其他一切正常。谢谢您的帮助 !!!
def authenticate(email, password)
command = AuthenticateUser.call(email, password)
user = User.find_by email:(email)
confirmationtoken =
User.find_by_confirmation_token(params[:confirmation_token].to_s)
if user.present? && confirmationtoken.present?
render json: {error: 'Email not verified' }, status: :unauthorized
elsif command.success?
render json: {
access_token: command.result,
message: 'Login Successful'
}
else
render json: { error: command.errors }, status: :unauthorized
end
end
解决方案
您可以简单地检查是否confirmation_token
设置了用户的属性:
user = User.find_by(email: email)
if user && user.confirmation_token.present?
# ...
elsif command.success?
# ...
else
# ...
end
user.confirmation_token.present?
可以缩短为user.confirmation_token?
推荐阅读
- c++ - qt 自定义类中没有名为“setText”的成员错误
- amazon-web-services - 有没有办法隔离一个状态(或某些状态),以便其余的不会在 AWS Step Function 中执行(调试)?
- python - 无法打开使用 python 和 Django 创建的 zip 文件
- selenium-webdriver - “.//*”和“//*”XPath 的区别?
- excel - 比较两个单元格字符串以打印出好坏
- swift - 添加新项目时 SwiftUI 列表未更新
- typescript - 联合类型允许对所用类型的属性进行错误分配
- c# - Kofax Total Agility:以编程方式将文档作业移动到特定流程步骤
- c# - 通过 web.config ASP.NET MVC 删除查询字符串
- node.js - 为什么 Nodemailer 不能安全地连接到我在共享主机上运行的服务器