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


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

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

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

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

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

Есть предложения ?

2 2

2 ответа:

Ответ прост:

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

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

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

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