Запрос пустых полиморфных ассоциаций - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь найти все Foo, которые не имеют Bar, связанных с ними.Я знаю, что это не работает, но что-то вроде Foo.where(barable: nil).

Модель Foo

class Foo < ApplicationRecord
    has_many :bars, as: :barable
end

Модель бара

class Bar < ApplicationRecord
    belongs_to :barable, polymorphic: true
end

Таблицы

Foo(id: integer, name: string, created_at: datetime, updated_at: datetime)

Bar(id: integer, barable_type: string, barable_id: string, created_at: datetime, updated_at: datetime)

1 Ответ

0 голосов
/ 22 мая 2018
Foo.joins('LEFT JOIN bars ON bars.foo_id = foos.id').where('bars.id is null') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...