No creo que lo que quieras hacer sea una forma correcta de resolver este problema.
Lo que sugeriría en su lugar, es simplemente anular la end_date método en el modelo:
def end_date
super == Float::INFINITY ? DateTime::Infinity.new : super
end
Esto básicamente dice si end_date en db es Float::INFINITY devuelve DateTime::Infinity.new como end_date , de lo contrario, devolver lo que está en la base de datos.