Rails 3 & ActiveRecord - sql запрос о дате - PullRequest
0 голосов
/ 25 октября 2011

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

Например, если я установлю на эти входы значения

2011-10-25 и 2011-10-28 , значит, статья будет видна через 3 дня. Если бы я хотел, чтобы статья оставалась видимой, я бы хотел ввести значения 0000-00-00.

Но теперь я думаю, как сделать SQL-запрос - я пытаюсь что-то вроде:

Article.where('from_date <= ? AND to_date >= ?', Func.today, Func.today)

Это работает, если я установил дату, с этого момента и до этого я хочу, чтобы статья была видна. Но если я укажу, что хочу, чтобы статья была видна каждый раз (0000-00-00), то этот запрос не работает ...

Я хотел бы спросить вас о подсказке, как обновить SQL-запрос выше для него ...

Заранее спасибо,

Мэнни

1 Ответ

2 голосов
/ 25 октября 2011

Вместо того, чтобы устанавливать поля даты для всех нулей, установите их в ноль и ищите нулевые значения в запросе.

Article.where('(from_date IS NULL OR from_date <= ?) AND (to_date IS NULL OR to_date >= ?)', Func.today, Func.today)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...