Mam model Author
, który habtm: kanały. Używając Rails 3, chcesz ustawić zasięg, który znajdzie wszystkich autorów, którzy nie mają powiązanych kanałów.Jak korzystać z zakresu Rails 3 do filtrowania w tabeli sprzężenia habtm, gdzie powiązane rekordy nie istnieją?
class Author < ActiveRecord::Base
has_and_belongs_to_many :feeds
scope :without_feed, joins(:feeds).where("authors_feeds.feed_id is null")
end
... wydaje się nie działać. Wydaje się to prostą rzeczą. Czego tu mi brakuje?
Czy łączenie (: kanały) wykonuje wewnętrzne sprzężenie, które wybierze tylko autora, jeśli ma źródła danych? – Midwire
To rzeczywiście robi wewnętrzne sprzężenie: "WYBIERZ autorów. * OD autorów INNER JOIN autor_feeds ON authors_feeds.author_id = authors.id INNER JOIN feeds ON feeds.id = authors_feeds.feed_id WHERE (authors_feeds.feed_id ma wartość null)' i co ja pragnienie jest złączeniem zewnętrznym. Jakaś pomoc? – Midwire