Скажите, у меня есть ModelA
и ModelB
.Когда я сохраняю экземпляр ModelA
в БД, он также создает / сохраняет экземпляр ModelB
.В БД я получаю UTC для created_at
, которые отображаются точно так же.Например:
puts ModelA.first.created_at # Wed, 31 Aug 2011 22:49:28 UTC +00:00
puts ModelB.first.created_at # Wed, 31 Aug 2011 22:49:28 UTC +00:00
Так что я ожидаю, что запрос, подобный следующему, вернет совпадающие записи (но это не так)
# model_instance is instance of SomeModel
ModelA.where(created_at:model_b_instance.created_at) # returns []
Но что-то вроде этого, используя to_s (:db) работает
ModelA.each do |m|
if m.created_at.to_s(:db) == model_b_instance.created_at.to_s(:db)
... # found matches here
end
end
Может кто-нибудь объяснить, что я здесь не так делаю?Я хочу иметь возможность писать запросы типа ModelA.where(created_at: ... )
, но в настоящее время я застрял в необходимости повторения и сопоставления с to_s(:db)
.