Исключить некоторые идентификаторы из результата в Rails ActiveRecord - PullRequest
2 голосов
/ 06 апреля 2010

У меня есть следующий оператор для запросов статей из некоторых разделов

Article.all(:joins => :sections, :conditions => { :sections =>{ :id => [3, 4, 6, 7, 8, 9] }, :id_not_in => @some_ids  }, :limit => 4)

Переменная @some_ids - это массив с идентификаторами статей, которые должны быть исключены из результата.

Ответы [ 2 ]

9 голосов
/ 06 апреля 2010

Если Article has_many :sections, попробуйте:

Article.find(:all, :joins => :sections, :conditions => ["sections.id IN (?) AND
   id NOT IN (?)", [1,2,3], @some_ids], :limit => 4)
2 голосов
/ 06 апреля 2010
Article.all(:joins => :sections, 
  :conditions => [ 'sections.id in ? and sections.id not in ?', 
  [3, 4, 6, 7, 8, 9], @some_ids ], :limit => 4)

непроверенных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...