Это ответ на комментарии Франсуа Босолей:
«Какую версию ActiveRecord, SQLite, Ruby вы используете? Опишите сессию, где мы увидим код, который вы вводите на консоли, и что находится в development.log»
Я помещаю это здесь, потому что я не могу получить форматирование в комментарии, и это сообщение будет в значительной степени нечитаемым без форматирования!
SQLite version: 3.6.12
ActiveRecord version: 2.3.5
Тестовый код:
require 'test_helper'
class StatTest < ActiveSupport::TestCase
test "Tmp" do
# Prints: [#<Day id: 980190962, failure_day: "2010-04-14" ... >]
p Day.all
# Prints: []
p Day.all(:conditions=>["failure_day < ?", '2010-05-14'])
# Prints: []
p Day.all(:conditions=>["failure_day < ?", Date.new(2010,5,4)])
end
end
Test.log
Day Load (0.3ms) SELECT * FROM "days"
Day Load (0.1ms) SELECT * FROM "days" WHERE (failure_day < '2010-05-14')
Day Load (0.1ms) SELECT * FROM "days" WHERE (failure_day < '2010-05-04')
Выполнение любой из этих команд непосредственно из SQLite возвращает ожидаемые строки, поэтому проблема не в команде SQLite, которую генерирует ActiveRecord. Bizarre.