【发布时间】: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