Надеюсь, это кому-нибудь поможет.

о чтобы обновить это, так как кажется, что многие приходят к этому, если вы используете Rails 4, посмотрите ответы Trung Lê` и VinniVidiVicci.

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

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

Я надеюсь, что есть простое решение, которое не связано сfind_by_sqlЕсли нет, то я думаю, что это будет работать.

я нашелЭта статья который ссылается на это:

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

который так же, как

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

Мне интересно, есть ли способ сделатьNOT IN с этим, как:

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

Ответы на вопрос(15)

Ваш ответ на вопрос