这是在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
答案 0 :(得分:2)
这不是一个完整的答案,但希望能让您放心,您的语法正确
我敲了一个快速的应用程序来测试这个和你的所有检索工作方法。这也是一个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">]
我的schema.rb:
create_table "tasks", :force => true do |t|
t.date "date"
end
答案 1 :(得分:2)
即使我在我的本地数据库中尝试过,一切似乎都运行正常。
to_sql方法将返回rails生成的查询。 这可能有助于您调试问题:
Task.where(:date => date).to_sql