- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些模型设置了命名空间..
rails g model Technology::Post ...
这导致了错误
PG::UndefinedTable: ERROR: relation "posts" does not exist
LINE 5: WHERE a.attrelid = '"posts"'::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 = '"posts"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
因为这些是命名空间的,所以我有一个模型 technology.rb
module Technology
def self.table_name_prefix
'technology_'
end
end
当然还有 Technology::Post
模型。此模型位于文件夹 technology
中,名为 post.rb
。
class Technology::Post < ActiveRecord::Base
...
end
我的数据库名称是 technology_posts
。
public | technology_posts | table | postgres
但出于某种原因,它正在寻找表 posts
。在 Controller 中,我可以有一个基本的 @posts = Technology::Post.all
,这仍然会发生。
重新启动服务器将解决问题,直到它再次发生。这在我们的生产环境中也不是问题。只有发展。
最佳答案
发生了三件事。
首先,确保您拥有最新版本的 pg gem。
Udit 的答案,设置表名,可能会起作用。但这是一种解决方法。我认为问题的原因和开箱即用的原因如下:
当您生成命名空间模型时,Rails 会创建一个如下所示的模块文件:
module Technology
def self.table_name_prefix
'technology_'
end
end
但是,如果您在别处定义常量/模块“Technology”,Rails 可能不会自动加载此文件!您可以通过在文件顶部放置一些调试 puts
来进行测试。
解决方案是确保通过显式要求加载此模块,或将其转移到模型中。例如,
module Technology
def self.table_name_prefix
'technology_'
end
class Post < ActiveRecord::Base
...
end
end
关于ruby-on-rails - 继续获取带有命名空间模型的 PG::UndefinedTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934064/
我有以下命名空间模型: # app/models/face_data/pool_membership.rb class FaceData::PoolMembership 0 AND NOT a.at
我有一些模型设置了命名空间.. rails g model Technology::Post ... 这导致了错误 PG::UndefinedTable: ERROR: relation "post
我以前看到过这个问题,但只针对 rspec。我还没有创建测试,因为它对我来说太先进了,但总有一天我会的! :P 当我尝试注册/登录我的应用程序时出现此错误。我使用 devise 创建用户,还使用
只是尝试构建一个 Rails 应用程序,我很确定我做了一些愚蠢的事情。我跑了一个脚手架,拼错了模型 Ave vs Afe。我确定我已经完成并更改了迁移文件和查看文件等中的所有内容,甚至搜索了“ave”
我在开发和测试中使用 sqlite,并部署到在生产中使用 Postgres 的 Heroku。我通过在终端中运行以下命令为“评论”创建了一个新模型: rails g model Review comm
我遇到了一个问题,我不确定如何解决这个问题。在创建 Rails View 、填充 View 和编辑 Controller 后,我遇到了一个错误,指出 PG::UndefinedTable: ERROR
我有模型 class Offer { where(state: 'active') } # Somewhere else merge(Agency.active) 此外,了解其他模型的表名是什么。在
我刚刚向模型添加了全局化(使用 globalize gem)。 模型: class Information::Blog::Post t.typcollation WHE
我有一个表 A,其中包含列 name(string)、email(sring) 和 details(json)。我想像这样使用 first_or_create: A.where(:name => a.
作为我看到的表格的一部分: ... ... 处理表单提交的邀请 Controller 方法: def create @user = User.find(email: para
我知道这个问题已经被问过很多次了,但我已经尝试了很多解决方案,但都没有成功。我在 Heroku 上部署了一个 Rails 应用程序,它可以在本地运行,但我收到“很抱歉,出了点问题”。当我尝试在 Her
将应用程序 Rails 5.2 更新为 6,更新添加了以下两个迁移: # This migration comes from active_storage (originally 201901
我有两个模型:Courier 和 Order。 我有以下查询: active_couriers = Courier. available_courier_status. where(:serv
我在开发环境中使用 SQlite,在生产环境中使用 Postgre。 在开发过程中一切正常。但是当我尝试重置和迁移生产数据库时,我收到了以下消息: PG::UndefinedTable: ERROR:
因此,我正在开发一个现有的应用程序,并且正在将其设置到我的本地环境中,但是我遇到了一些问题: 1. 我已经下载了最新的代码,并从内部开发人员那里转储了数据库。这是一个 .sql 文件,所以我使用了以下
例如,如果我尝试删除一个不存在的表,我将收到以下错误: "# ex if ex.cause.is_a?(PG::UndefinedTable) # do something else
在迁移时,我收到以下错误消息: PG::UndefinedTable: ERROR: relation "actioncodes" does not exist : ALTER TABLE "org
我在事件和用户之间有一个 has_and_belongs_to_many 关系。 用户.rb class User 0 AND NOT a.attisdropped O
我的一个 PG DB 表出现了这个问题。我有一个表,它的名字是“hproducts_rules”。这应该与“hproducts_matchs”表具有“belongs_to”关系。 这是我的表架构: h
rake db:migrate 在 sqlite3 中本地工作,但在 heroku 中的 postgresql 中不起作用。 错误 PG::UndefinedTable: ERROR: relati
我是一名优秀的程序员,十分优秀!