Solo per aggiornare questo dato che sembra che molte persone arrivino a questo, se stai usando Rails 4 guarda le risposte di Trung Lê` e VinniVidiVicci.
Topic.where.not(forum_id:@forums.map(&:id))
Topic.where(published:true).where.not(forum_id:@forums.map(&:id))
Spero che ci sia una soluzione semplice che non implichi find_by_sql
, altrimenti credo che dovrà funzionare.
Ho trovato questo articolo che fa riferimento a questo:
Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) })
che è lo stesso di
SELECT * FROM topics WHERE forum_id IN (<@forum ids>)
Mi chiedo se c'è un modo per farlo NOT IN
, come:
SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)
Person.all(:name.not => ['bob','rick','steve'])