首页 > 解决方案 > 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)

任何帮助将不胜感激!

标签: ruby-on-railsrubyapideviseruby-on-rails-5

解决方案


使用带有作用域和资源的sign_in方法

sign_in :officer, @user

推荐阅读