【问题标题】:PG::UndefinedTable: ERROR: missing FROM-clause entry for table "user_events"PG::UndefinedTable: 错误:缺少表“user_events”的 FROM 子句条目
【发布时间】: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 调用中。

【问题讨论】:

    标签: ruby postgresql ruby-on-rails-4 rails-activerecord


    【解决方案1】:

    我在这里得到了什么,您需要通过上述查询标题不是“哇”的人?正确的。 如果是这样,那么您应该在那里使用引用方法,因为rails不理解标题在“user_events”表上,因为您从事件中调用它也可以这样写

    Event.includes(:attendees).joins(:user_events).where.not(user_events: {title: "哇"})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-22
      • 2016-03-24
      • 2015-10-30
      • 2018-06-30
      • 2015-12-19
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多