gpt4 book ai didi

ruby-on-rails - Devise 在控制台中创建的用户无法登录

转载 作者:行者123 更新时间:2023-12-04 03:49:59 25 4
gpt4 key购买 nike

我试图在设计中关闭#registerable 并仅通过控制台和种子数据注册用户,但是我在登录时遇到问题。

  1. 我通过控制台创建了一个用户:User.create!(email: 'example@example.com', password: 'password', username: 'username')
  2. 验证通过并保存到数据库
  3. 当我提供电子邮件:user@example.com 和密码:password 时,我无法(通过网站表单)登录此用户
  4. 不过这是控制台中的密码:

    u = User.find_by_email('example@example.com')

    u
    => #<User id: 6, email: "example@example.com", encrypted_password: "$2a$10$xd0PMJ.qDDu6VtFd6i2EM.bQ0h1rvODyzaqFdzo3Uo4C...", username: "user", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2013-09-30 01:25:16", updated_at: "2013-09-30 01:25:16">


    u.valid_password? 'password'
    => true

我试过多个用户,我试过用 db/seed.rb 创建它。同样,它确实进入了数据库并且一切看起来都很好。它只是不会登录。我还尝试添加带有匹配密码的 password_confirmation 字段,没有骰子。

如果我在用户模型中打开 :registerable ,转到注册页面,注册一个用户,我可以用那个用户登录(通过表单创建)。

我唯一的想法是生成加密密码的方式有什么不同?但这并不成立,因为我可以对网络创建的用户运行相同的 find_by_email/valid_password 检查。

如有任何帮助,我们将不胜感激?

编辑:

我没有使用 Confirmable,这是我的 Devise 属性:

     devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatablen

编辑2现在我无法使用我在网络上创建的帐户登录。我需要进行更多调试。

最佳答案

假设您正在使用 Confirmable ,使用以下内容创建用户:

User.create!(email: 'example@example.com', password: 'password', username: 'username', confirmed_at: Time.now)

否则,devise 将等待用户确认他们的电子邮件地址,而这永远不会发生

关于ruby-on-rails - Devise 在控制台中创建的用户无法登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19085272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com