Como expressar uma consulta NOT IN com ActiveRecord / Rails?

Apenas para atualizar isso, pois parece que muitas pessoas chegam a isso, se você estiver usando o Rails 4, observe as respostas de Trung Lê` e VinniVidiVicci.

Topic.where.not(forum_id:@forums.map(&:id))

Topic.where(published:true).where.not(forum_id:@forums.map(&:id))

Espero que exista uma solução fácil que não envolvafind_by_sql, se não, acho que terá que funcionar.

eu encontreiEste artigo que faz referência a isso:

Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) })

que é o mesmo que

SELECT * FROM topics WHERE forum_id IN (<@forum ids>)

Gostaria de saber se existe uma maneira de fazerNOT IN com isso, como:

SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)

questionAnswers(15)

yourAnswerToTheQuestion