Не мисля, че това, което искате да направите, е правилен начин за решаване на подобен проблем.
Това, което бих предложил вместо това, е просто да замените end_date метод в модела:
def end_date
super == Float::INFINITY ? DateTime::Infinity.new : super
end
Това основно казва if end_date в db е Float::INFINITY върне DateTime::Infinity.new като end_date , в противен случай връща това, което е в базата данни.