Как выбрать пользователей с днем ​​рождения сегодня в Rails 3 - PullRequest
2 голосов
/ 11 ноября 2010

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

Можно ли сделать это чисто рельсовым способом, без написания специфических SQL-запросов к БД?

Пользовательская модель проста: user_id, name, dob

Есть хорошее решение здесь но это не совсем то, что мне нужно.

Ответы [ 2 ]

6 голосов
/ 11 ноября 2010
User.where(:dob => 2.days.ago .. 2.days.from_now)

приведет к WHERE dob BETWEEN 2_days_ago AND 2_days_from_now

0 голосов
/ 17 августа 2011

У меня есть одно решение.Может быть, это не элегантно, но у меня работает:

@users=User.all

<% @users.each do |u| %>
    <% if u.dob+(Date.today.year-u.dob.year).years >= Date.yesterday && u.dob+(Date.today.year-u.dob.year).years <= Date.tomorrow %>
        <%= u.name %>
    <%end%>
<%end%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...