在我的应用程序中,我希望在输入和查看时都支持一个空白的日期字段,意思是“未来的某个不确定的日期”。由于我将其存储在数据库中,并且在任何非nil日期之前进行nil排序,因此我决定对date类进行猴子修补,以实现一个返回"1/1/10000“(我选择该日期表示未来的不确定日期)的"max_value”方法。我已经重载了+、-、to_s和其他运算符/方法,以适当地使用此值。然后,我向模型添加了一个before_save回调函数,以便将任何空白日期转换为Date.max_value。这一切似乎都很好用(除了我正在尝试解决的几个bug),但是有没有更好的方法来做到这一点,而不是像猴子一样修补类?
发布于 2011-06-18 05:35:51
您要查找的值为空。重写一个基类,比如Date,以后只会自找麻烦。
在查询中执行此操作
SELECT * FROM Mystery_Events ORDER BY ISNULL(some_event_date,'1/1/10000') ASC或者,您可以使用
ORDER BY (case WHEN some_event_date IS NULL THEN 1 ELSE 0 END), some_event_date, some_other_sorting_field_to_give_order_to_the_nulls ASChttps://stackoverflow.com/questions/6392046
复制相似问题