Как выбрать * из базы данных, где столбец! = Значение в рельсах - PullRequest
2 голосов
/ 21 июня 2011

Сейчас я делаю следующий запрос, чтобы отобразить все задачи в простом приложении для управления проектами, над которым я работаю.

Task.find(:all, :order => 'updated_at DESC')

Это нормально и прекрасно работает, хотя у меня есть приватный столбец, который установлен в 1, если задача приватная.Как выбрать все задачи в базе данных, где частное не == 1?

Ответы [ 2 ]

5 голосов
/ 21 июня 2011

Это ARel должно сделать трюк:

Task.where(:private => false).order("updated_at DESC")

Редактировать: при условии, что ваш столбец равен 1 или 0. Если нет, вы можете использовать сравнения lt / gt,будет выглядеть примерно так:

Task.where(Task.arel_table[:private].gt(1)).order("updated_at DESC")
1 голос
/ 21 июня 2011

решение muffinista является лучшим, если вы используете Rails 3. Если вы все еще на Rails 2, вам нужно будет использовать условия:

Task.find(:all, :conditions => {:private => false}, :order => 'updated_at DESC')

или

Task.find(:all, :conditions => "private != 1", :order => 'updated_at DESC')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...