Исключить условия в активных отношениях, как?
Я ищу способ сделать противоположное:
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