gpt4 book ai didi

ruby-on-rails - PG::UndefinedTable: 错误:关系不存在

转载 作者:行者123 更新时间:2023-12-03 15:18:14 26 4
gpt4 key购买 nike

只是尝试构建一个 Rails 应用程序,我很确定我做了一些愚蠢的事情。我跑了一个脚手架,拼错了模型 Ave vs Afe。我确定我已经完成并更改了迁移文件和查看文件等中的所有内容,甚至搜索了“ave”以查看是否遗漏了任何内容。无论如何运行迁移,现在我明白了:

PG::UndefinedTable: ERROR: relation "aves" does not exist LINE 5: WHERE a.attrelid = '"aves"'::regclass ^ : SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"aves"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum

Extracted source (around line #17):

15 # GET /afes/new
16 def new
17 @afe = Afe.new
18 end
19
20 # GET /afes/1/edit

我检查了我的 postgsql 索引、模式,甚至删除了我的迁移并运行了 rake:db:reset。我的模式、模型和 Controller 都很干净。旧的“ave/aves”引用资料已无处可寻。看起来有些东西卡在事件记录中,但不确定从哪里开始。

这是一个虚拟的游戏应用程序,但我真的不想重新开始。我可以强制迁移再次运行(如果我取消删除它们)吗?

最佳答案

这与复数规则有关,即用于构成模型名称复数形式的规则。

 ActiveSupport::Inflector.pluralize "afe"
=> "aves"

所以 Rails 认为 afe 的复数形式是 aves

您可以通过在迁移中将表重命名回 aves 或将其添加到 config/initializers/inflections.rb 来解决您的问题:

ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'afe', 'afes'
end

关于ruby-on-rails - PG::UndefinedTable: 错误:关系不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19783661/

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