Какой лучший способ поиска по дате в Rails? - PullRequest
0 голосов
/ 09 августа 2010

HI

каков наилучший способ реализовать простой поиск в рельсах для получения всех моделей с одинаковой датой?

например, получить всех клиентов с датой рождения 23-10-1975,который будет в формате даты.

т.е.

  create_table "customer", :force => true do |t|
    t.string   "f_name"
    t.string   "m_name"
    t.string   "l_name"
    t.date     "date_of_birth" 
end

Ответы [ 2 ]

3 голосов
/ 09 августа 2010

Полагаю, вы хотите поздравить всех пользователей, у которых сегодня день рождения? Ну, я сейчас не на dev-машине, так что я не могу ее протестировать, но я бы хотел что-то вроде этого:

@bday_customers = Customer.find(:all, :conditions => { :birthday => Date.today } )

или даже

@bday_customers = Customer.find(:all, :conditions => { :birthday => (Date.today)..(Date.today + 2.weeks) } )

Это заставит вашу базу данных выполнять свою работу, так как она оптимизирована для таких поисков.

1 голос
/ 09 августа 2010

Предположим, date это строка вида 23-10-1975, тогда что-то вроде этого;

Customer.all(:conditions => { :date_of_birth => Date.strptime(date, '%d-%m-%Y') })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...