我有一个古怪的案例。我不确定这是否是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调用中。
答案 0 :(得分:0)
我在这里遇到的问题是,您需要那些上面的查询标题不是“哇”的人?正确。 如果是这样,则应该在那儿使用references方法,因为rails不能理解“ user_events”表上的标题,因为您从Event调用了它,也可以这样写
Event.includes(:与会者).joins(:user_events).where.not(user_events: {title:“哇”})