Да, вы можете напрямую сравнивать значение поля даты / времени created_at
ActiveRecord с обычным DateTime
объектом (как тот, который вы можете получить, анализируя имеющуюся у вас строку).
В проекте у меня есть объект Value, в котором есть объект date_at create_at:
imac:trunk luca$ script/console
Loading development environment (Rails 2.3.2)
>> Value.first.created_at
=> Fri, 12 Jun 2009 08:00:45 CEST 02:00
>> Time.parse("2009-06-03 16:57:45.608000 -04:00")
=> Wed Jun 03 22:57:45 0200 2009
>> Value.first.created_at > Time.parse("2009-06-03 16:57:45.608000 -04:00")
=> true
Поле create_at определяется как:
create_table "values", :force => true do |t|
[...]
t.datetime "created_at"
end
N.B. если ваше поле является датой, а не датой и временем, вам необходимо преобразовать ее во время:
Post.first.created_at.to_time > Time.parse("2009-06-03 16:57:45.608000 -04:00")
или разобрать дату:
Post.first.created_at > Date.parse("2009-06-03 16:57:45.608000 -04:00")
в противном случае вы получите:
ArgumentError: comparison of Date with Time failed