¿Cómo expresar una consulta NOT IN con ActiveRecord / Rails?

Solo para actualizar esto, ya que parece que mucha gente viene a esto, si está utilizando Rails 4, vea las respuestas de Trung Lê` y VinniVidiVicci.

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

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

Espero que haya una solución fácil que no impliquefind_by_sql, si no, supongo que tendrá que funcionar.

encontréEste artículo que hace referencia a esto:

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

que es lo mismo que

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

Me pregunto si hay una manera de hacerNOT IN&nbsp;con eso, como:

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