Tôi không nghĩ rằng những gì bạn muốn làm là một cách chính xác để giải quyết vấn đề như vậy.
Thay vào đó, điều tôi sẽ đề xuất là chỉ cần ghi đè end_date phương pháp trong mô hình:
def end_date
super == Float::INFINITY ? DateTime::Infinity.new : super
end
Về cơ bản, điều này cho biết nếu end_date trong db là Float::INFINITY return DateTime::Infinity.new dưới dạng end_date , nếu không, hãy trả lại những gì trong cơ sở dữ liệu.