ruby-on-rails - 在 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
解决方案
也许您正在以错误的方式进行整个设计安装。尝试找出它在哪一点不起作用。卸载设备。
- 在您的 Gemfile 中删除:gem 'devise'
- 在终端中运行:捆绑
- 在终端中运行:gem uninstall devise(确保设计不在您的应用程序中)
- 它现在工作了吗?如果没有,那么设计不是问题。如果是,请继续下一步。
- 添加你的 Gemfile: gem 'devise'
- 在终端中运行:捆绑
- 此时,控制台中会出现一些指令。在这些说明中,您需要在每个环境中为 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)。否则,您将遇到奇怪的错误,例如,用户无法登录和路由助手未定义。
推荐阅读
- python - 将 for 循环变量传递给新函数
- list - Prolog 读取文件并将数据用作不同功能的输入
- python - 获取 Tkinter 上的顶级列表
- git - 如何从不再存在的周期性中跳过 github url?
- python - Python:字符串到 CamelCase
- python - 用 beautifulsoup 提取一个 img URL
- apache-spark - Apache Spark:爆炸导致随机溢出
- azure-iot-edge - 'iotedge check' - 为什么主机名需要以机器名开头
- jquery - 我想在剃刀中循环我的模型列表以填充 jquery 列
- python - Pandas read_csv 提供的数据帧比我使用 pd.to_csv() 编写的数据帧更大