【问题标题】:localhost:3000 refused to connect after installing devise gem in rails 6在 Rails 6 中安装 devise gem 后 localhost:3000 拒绝连接
【发布时间】:2021-08-19 06:19:35
【问题描述】:

在我安装设计 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

【问题讨论】:

  • devise gem 没有理由干扰连接。当您说您可以在浏览器中连接时,您是什么意思?这是使用 cURL 吗?

标签: ruby-on-rails ruby postgresql devise rubygems


【解决方案1】:

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

  1. 在您的 Gemfile 中删除:gem 'devise'
  2. 在终端中运行:捆绑
  3. 在终端中运行:gem uninstall devise(确保 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)。否则,您会遇到奇怪的错误,例如,用户无法登录和路由助手未定义。

【讨论】:

    猜你喜欢
    • 2023-02-05
    • 2021-09-25
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2021-02-20
    相关资源
    最近更新 更多