PG :: UndefinedTable: ERROR: отсутствует запись предложения FROM для таблицы "user_events" - PullRequest
0 голосов
/ 12 сентября 2018

У меня немного странный случай.Я не уверен, что это ошибка 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 голосов
/ 12 сентября 2018

Что я тут понял, что вам нужны те, чей заголовок не указан по запросу выше? Правильный. Если это так, то вы должны использовать там метод ссылки, поскольку rails не понимают, что title находится в таблицах "user_events", потому что вы вызвали его из Event, и вы можете написать его так:

Event.includes (: чел) .joins (: user_events) .where.not (user_events: {title: "вау"})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...