Ho un modello Author
che habtm: feeds. Utilizzando Rails 3 si desidera impostare un ambito che trovi tutti gli autori che non hanno feed associati.Come utilizzare lo scope Rails 3 per filtrare sulla tabella di join habtm in cui i record associati non esistono?
class Author < ActiveRecord::Base
has_and_belongs_to_many :feeds
scope :without_feed, joins(:feeds).where("authors_feeds.feed_id is null")
end
... non sembra funzionare. Sembra una cosa semplice. Cosa mi manca qui?
Sembra che i join (: feed) stiano eseguendo un join interno che selezionerà solo un autore se hanno feed in primo luogo? – Midwire
Effettua effettivamente un join interno: 'SELEZIONA autori. * Dagli autori INNER JOIN autori_feeds ON authors_feeds.author_id = authors.id feed ENNER INTERNA SU feeds.id = authors_feeds.feed_id WHERE (authors_feeds.feed_id è null)' e cosa I voglio è un join esterno. Qualsiasi aiuto? – Midwire