PG::UndefinedTable: 错误:缺少表“user_events”的 FROM 子句条目
Posted
技术标签:
【中文标题】PG::UndefinedTable: 错误:缺少表“user_events”的 FROM 子句条目【英文标题】:PG::UndefinedTable: ERROR: missing FROM-clause entry for table "user_events" 【发布时间】:2019-02-17 11:17:47 【问题描述】:我有一个古怪的案例。我不确定这是否是 Rails 错误(我使用的是 4.1.4 版)。也许,我需要升级我的版本。
基本上:
我的Event
模型具有以下关联:
has_many :attendees, -> order(:name).select('users.*, user_events.event_title') ,
through: :user_events,
source: :user
这样做的目的是让我获得参加活动并通过user_events
加入表的用户,它还会让我获得他们的event_title
。
这适用于简单的情况:event.attendees
但是,它会出现以下错误:
Event.includes(:attendees).where.not(title: "wow")
问题基本上是user_events
没有添加到出错的命令中的FROM子句中。不过它是在event.attendees
中添加的。
如何正确添加它?
我尝试过Event.includes(:attendees).joins(:user_events).where.not(title: "wow")
,但它会将user_events
添加到错误的SQL 调用中。
【问题讨论】:
【参考方案1】:我在这里得到了什么,您需要通过上述查询标题不是“哇”的人?正确的。 如果是这样,那么您应该在那里使用引用方法,因为rails不理解标题在“user_events”表上,因为您从事件中调用它也可以这样写
Event.includes(:attendees).joins(:user_events).where.not(user_events: title: "哇")
【讨论】:
以上是关于PG::UndefinedTable: 错误:缺少表“user_events”的 FROM 子句条目的主要内容,如果未能解决你的问题,请参考以下文章
PG::UndefinedTable: 错误: 关系“...”不存在
PG::UndefinedTable:错误:关系“active_storage_blob”不存在
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "geometry_columns" do
Heroku / Rails:PG :: Undefined Table:错误“[tablename]”在heroku rails迁移上不存在