首页 > 解决方案 > 在 Rails 6 中安装 devise gem 后,localhost:3000 拒绝连接

问题描述

在我安装设计 gem 之前,我的 rails 应用程序运行良好。安装 devise gem 后,rails 服务器在终端中正确连接,但在浏览器中拒绝连接。已经尝试切换到另一个端口,但无济于事。如何在开发过程中再次在 localhost:3000 中正确连接它?我正在为我的数据库使用 postgresql。

rails s
=> Booting Puma
=> Rails 6.1.3.2 application starting in development
=> Run `bin/rails server --help` for more startup options Puma starting in single mode...
* Puma version: 5.3.1 (ruby 3.0.1-p64) ("Sweetnighter")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 3519
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000 Use Ctrl-C to stop

标签: ruby-on-railsrubypostgresqldeviserubygems

解决方案


也许您正在以错误的方式进行整个设计安装。尝试找出它在哪一点不起作用。卸载设备。

  1. 在您的 Gemfile 中删除:gem 'devise'
  2. 在终端中运行:捆绑
  3. 在终端中运行:gem uninstall devise(确保设计不在您的应用程序中)
  4. 它现在工作了吗?如果没有,那么设计不是问题。如果是,请继续下一步。
  5. 添加你的 Gemfile: gem 'devise'
  6. 在终端中运行:捆绑
  7. 此时,控制台中会出现一些指令。在这些说明中,您需要在每个环境中为 Devise 邮件程序设置默认 URL 选项。这是 config/environments/development.rb 的可能配置:

config.action_mailer.default_url_options = { 主机:'localhost',端口:3000 }

在以下命令中,您将用应用程序用户使用的类名替换 MODEL(通常是 User,但也可能是 Admin)。这将创建一个模型(如果不存在)并使用默认的设计模块对其进行配置。生成器还将您的 config/routes.rb 文件配置为指向设计控制器。

在终端运行:rails generate devise MODEL

接下来,检查模型以获取您可能想要添加的任何其他配置选项,例如可确认或可锁定。如果您添加一个选项,请务必检查迁移文件(如果您的 ORM 支持,则由生成器创建)并取消注释相应的部分。例如,如果您在模型中添加可确认选项,则需要在迁移中取消注释可确认部分。

在终端中运行:rails db:migrate

您应该在更改 Devise 的配置选项后重新启动您的应用程序(这包括停止 spring)。否则,您将遇到奇怪的错误,例如,用户无法登录和路由助手未定义。


推荐阅读