PG :: UndefinedTable:错误:缺少表“ user_events”的FROM子句条目

时间:2018-09-12 18:41:00

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

我有一个古怪的案例。我不确定这是否是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 个答案:

答案 0 :(得分:0)

我在这里遇到的问题是,您需要那些上面的查询标题不是“哇”的人?正确。 如果是这样,则应该在那儿使用references方法,因为rails不能理解“ user_events”表上的标题,因为您从Event调用了它,也可以这样写

  

Event.includes(:与会者).joins(:user_events).where.not(user_events:   {title:“哇”})