gpt4 book ai didi

ruby-on-rails - 为什么carrierwave会导致NameError: uninitialized constant Micropost::PictureUploader错误?

转载 作者:行者123 更新时间:2023-12-04 06:13:58 25 4
gpt4 key购买 nike

在Hartl Rails教程章节13.4.1 Basic image upload我们添加了用于图像上传的载波 gem。

但是,在生成 uploader 并将迁移添加到 Microposts 模型后,我的测试中一直出现此错误:

NameError: 未初始化常量 Micropost::PictureUploader

谷歌搜索后,我能够通过将其添加到我的 environments.rb 来解决此问题:

需要'carrierwave/orm/activerecord'

但我觉得我做错了什么,因为 Hartl 没有这样做,他在第 13.4.1 章的末尾假设您的测试应该在重新启动服务器后通过。

我做错了吗?

更新:

将该行添加到我的 environments.rb 文件后,我的测试通过了。然后一旦他们通过了,我就可以删除那条线并且测试继续通过。这就像初始化一次所需的常量。

我会说我第一次运行测试之前忘记运行 rails db:migrate,但是我继续删除测试数据库,重新创建它,运行迁移,重新启动服务器,它没有修复它。

仍然对哪里出了问题感到困惑。

最佳答案

BoraMauser782220 运行 spring stop 然后 rails test 的建议对我有用。无需将 require 行添加到我的 environments.rb

我还通过 WSL 在 Windows 上通过 JetBrains RubyMine 运行 Hartle 的教程。我发现在 RubyMine 中停止应用程序实际上并没有停止服务器。每次我停止和启动服务器时,另一个 Puma 实例开始运行。我必须重新启动整个应用程序才能终止所有潜在服务器。

您可以通过输入 ps aux | 来检查您是否有多余的服务器在运行。 grep puma 进入你的命令行。

似乎与this有关问题

关于ruby-on-rails - 为什么carrierwave会导致NameError: uninitialized constant Micropost::PictureUploader错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44004065/

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