Поиск записей по дате в Rails Console - PullRequest
4 голосов
/ 23 августа 2011

Это происходит на Sqlite. Я, наверное, что-то упускаю, но не могу понять, что именно.

Консольный вывод

>> date = Task.first.date
=> Tue, 16 Aug 2011
>> Task.find(:all, :conditions => {:date => date})
=> []
>> Task.find(:all, :conditions => ['date = ?', date])
=> []
>> Task.find(:all, :conditions => ['date IS ?', date])
=> []

Схема

create_table "tasks", :force => true do |t|
  t.date     "date"
end

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Даже я пытался в моем локальном БД, и все, кажется, работает нормально.

Метод to_sql вернет запрос, сгенерированный rails. Это может помочь вам в устранении проблемы:

Task.where(:date => date).to_sql
2 голосов
/ 23 августа 2011

Это не полный ответ, но, надеюсь, вы успокоитесь, что ваш синтаксис правильный

Я запустил быстрое приложение, чтобы проверить это и все ваши методы поисковой работы.,Это также было с базой данных SQLite, и ошибок не было.

t = Task.create
 => #<Task id: 1, date: nil, created_at: "2011-08-23 14:32:27", updated_at: "2011-08-23 14:32:27"> 

t.date = "Tue, 16 Aug 2011"
 => "Tue, 16 Aug 2011" 

t.save

date = Task.last.date
 => Tue, 16 Aug 2011 

Task.find(:all, :conditions => {:date => date})
 => [#<Task id: 1, date: "2011-08-16">] 

Task.find(:all, :conditions => ['date = ?', date])
 => [#<Task id: 1, date: "2011-08-16">] 

Task.find(:all, :conditions => ['date IS ?', date])
 => [#<Task id: 1, date: "2011-08-16">] 

Моя схема.rb:

create_table "tasks", :force => true do |t|
  t.date "date"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...