Проблема с таблицами соединения активных записей, которые не имеют каких-либо ассоциаций - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь отфильтровать все объекты (фотографии), которых нет в таблице запланированных сообщений.У меня есть оператор SQL работает:

Select * from photos p left join scheduled_posts sp on sp.photo_url = p.url where p.trashed = false and sp.photo_url is null

Я пытаюсь заставить это работать в рельсах с использованием активной записи, но две таблицы не связаны друг с другом, и у меня возникают проблемы с использованием .join из-за этогои я получаю неопределенную ошибку метода присоединения.Вот мой текущий код:

@objects = "#{@objects.table_name}".joins("left join scheduled_posts sp on sp.photo_url = p.url ").where("photo_url @> ?", nil)

1 Ответ

1 голос
/ 05 июля 2019

"#{@objects.table_name}" - это строка, а #joins - не метод для String. Вместо того, чтобы вызывать его по имени таблицы, вам нужно преобразовать имя таблицы в имя класса модели, а затем вызвать #constantize для него, чтобы получить константу класса, которую вы можете вызвать #joins on.

classify(@objects.table_name).constantize.joins # ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...