Non credo che quello che vuoi fare sia un modo corretto per risolvere questo problema.
Quello che suggerirei invece, è semplicemente di sovrascrivere il end_date metodo nel modello:
def end_date
super == Float::INFINITY ? DateTime::Infinity.new : super
end
Questo dice sostanzialmente se end_date in db è Float::INFINITY return DateTime::Infinity.new come end_date , altrimenti restituisci ciò che è nel database.