gpt4 book ai didi

ruby-on-rails - 尝试创建模型时“rails生成”命令挂起

转载 作者:行者123 更新时间:2023-12-03 05:46:41 24 4
gpt4 key购买 nike

我是 Rails 新手,今天早上决定放弃我的整个数据库设计/模型并重新开始。作为一个菜鸟,我确信做错了。

我删除了 db/migrate/ 中的所有文件并删除了表。当我尝试生成第一个新模型类时,rails 就挂了。在我点击 ^C 并尝试其他东西之前,在杂草中呆了 10 分钟。

这一次,我再次删除了表,将整个项目移动到project.bad并运行rails new重新开始。同样,在使用旧名称生成新项目后,它卡在 railsgenerate 命令上(我使用相同的项目名称)。

无奈之下,我尝试在同一根目录中创建一个新项目,但使用另一个名称。 Eureka !这就像冠军一样,创建 Controller 和模型类,但我完全无法在原始项目或任何新创建的项目中使用原始项目名称生成任何内容。我缺少什么才能让它再次正常工作?我不介意此时完全失去,但我希望能够再次使用原来的项目名称!

这是 log/development.log 的样子:

   (255.5ms)  CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB
(337.7ms) CREATE UNIQUE INDEX `unique_schema_migrations` ON `schema_migrations` (`version`)
ActiveRecord::SchemaMigration Load (0.2ms) SELECT `schema_migrations`.* FROM `schema_migrations`
(0.2ms) SELECT `schema_migrations`.`version` FROM `schema_migrations`

知道最后一次选择之后会发生什么吗?

最佳答案

如果您的 railsgenerate 命令挂起,则很可能是生成的 Rails binstub 出现问题。正如您提到的,您重命名了该项目。

我有根据的猜测是 binstub 中的某些路径仍然设置为旧项目目录,但不再存在。

这里有一篇关于 binstub 如何工作的精彩文章:https://github.com/sstephenson/rbenv/wiki/Understanding-binstubs

rails 4

要重置 binstub,只需删除 Rails 中的 bin/ 目录并运行:

# generates binstubs for ALL gems in the bundle
bundle install --binstubs

# ...OR, generate binstubs for a SINGLE gem (recommended)
bundle binstubs rake

rails 5/rails 6

要重置 binstub,只需删除 Rails 中的 bin/ 目录并运行:

rake app:update:bin

为什么我们需要对 Rails 5 及更高版本使用“rake”命令,而不是“rails”命令本身?

从rails 5开始,一些“rake”命令被封装在“rails”命令中。然而,当删除“bin/”目录时,也会删除“rails”命令本身,因此需要返回“rake”进行重置,因为“rails”不再可用,但“rake”仍然可用。

关于ruby-on-rails - 尝试创建模型时“rails生成”命令挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31857365/

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