ruby-on-rails - Rails devse - 给定 7 个参数的 sign_in 错误数量,预期为 2
问题描述
使用 devise 为我的应用程序创建 API。只是尝试登录用户(Officer),devise sign_in 方法抛出错误。作为参考,Offices 是一个有 7 列的表,所以我想这与我得到的错误有关。如果有人有任何见解,将不胜感激。
user = Officer.find_for_database_authentication(email: params[:email].downcase)
if user == nil
render plain: "Email has not been registered", status: 422
elsif user.department == nil || user.department.expiration.past?
render plain: "Expired."
elsif user && user.valid_password?(params[:password])
if user.authentication_token == nil
user.authentication_token = Digest::SHA1.hexdigest([Time.now, rand].join)
user.save!
end
sign_in(user)
在线错误:
sign_in(user)
我也试过:
sign_in(user, scope: :officer)
错误:
wrong number of arguments (given 7, expected 2)
任何帮助将不胜感激!
解决方案
使用带有作用域和资源的sign_in方法
sign_in :officer, @user
推荐阅读
- swiftui - 变量不应该是 NIL
- python - WH_SHELL 使用 Python WinAPI SetWindowsHookExA
- swift - 在 SwiftUI 中将 ObservableObject 链接到 DatePicker
- python - 如何在 Docplex on python 中表达二次目标
- php - 如何在 php MySQL 中的两个日期时间之间进行搜索?
- assembly - 使用 CMake 构建 STM32 固件时的中断处理
- javascript - 为什么可以向函数添加属性?
- ruby-on-rails - Rails:路由“课程”->“章节”->“课程”
- python - 从 fasta 文件中检索氨基酸并仅包含前 5 个结果的总百分比
- laravel - v-for 中的 Laravel vue js 条件渲染