Исключить условия в активных отношениях, как?

Я ищу способ сделать противоположное:

Model.where(:name => 'julian')

Что-то вроде:

Model.where(:name => is_not('julian'))

Я нашел этот пост. Но, find(:all, :conditions => {}) в рельсах 3 устарела и, более того, я думаю, что более чистый способ сделать это должен существовать.

Любое предложение?

2 ответа

Решение

Простой ответ:

Model.where('models.name != ?', 'julian')

Если только вы не хотите приступить к созданию реальных условий Ареля, в этом случае вы сделаете что-то вроде:

Model.where(Model.arel_table[:name].not_eq('julian'))

Также вы можете использовать гем meta_where: https://github.com/ernie/meta_where

Другие вопросы по тегам