Я хотел бы выполнить запрос ActiveRecord, который возвращает все записи, кроме тех записей, которые имеют определенные идентификаторы. Иды, которые я хотел бы исключить, хранятся в массиве. Итак:Как исключить массив идентификаторов из запроса в Rails (используя ActiveRecord)?
ids_to_exclude = [1,2,3]
array_without_excluded_ids = Item. ???
Я не уверен, как завершить вторую линию.
фона: То, что я уже пробовал:
Я не уверен, что фон нужен, но я уже пробовал различные комбинации .find и .гд. Например:
array_without_excluded_ids = Item.find(:all, :conditions => { "id not IN (?)", ids_to_exclude })
array_without_excluded_ids = Item.where("items.id not IN ?", ids_to_exclude)
Эти сбои. This tip может быть на правильном пути, но мне не удалось его адаптировать. Любая помощь будет принята с благодарностью.
Вы пробовали ': условия => [ "(?) Идентификатор не IN", ids_to_exclude]'? Обратите внимание на скобки, а не на фигурные скобки. –
В Rails 3.2.1 я использовал этот 'MyModel.order ('created_at DESC'). Где ('id NOT in (?)', Ids_to_exclude) .limit (5)' в запросе недавно – Clay