私のアプリケーションでは、入力時と表示時の両方で、「未定義の未来の日付」を意味する空白の日付フィールドをサポートしたいと考えています。私はこれをデータベースに格納しており、日付がnil以外の日付の前にnilソートしているので、 "1/1/10000"を返す "max_value"メソッドを実装するために、Dateクラスにモンキーパッチを適用することにしました将来不確定な日付を表す)。私は+、 - 、to_s、およびこの値で適切に動作する他の演算子/メソッドをオーバーロードしています。私はモデルにbefore_saveコールバックを追加して空の日付をDate.max_valueに変換しました。これはすべてうまくいくように思えますが(私が解決しようとしているいくつかのバグは例外ですが)、クラスを猿でパッチすることなくこれを行う良い方法がありますか?モンキーパッチ日付クラスは最高のオプションですか?
0
A
答えて
3
あなたが探している値はnullです。 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 ASC
関連する問題
- 1. 最高の時間の日付形式
- 2. Pythonの:どのようにモンキーパッチ(スワップ)クラス
- 3. SQLテーブルから日付で最高のセールを選択
- 4. SQL日付オプション
- 5. 日付パラメタ最小の日付は今日のURLです
- 6. pyspark最高のamtで日付を検索します。
- 7. 最高の日付と最新のレコードとグループを取得 - LINQ
- 8. モンキーパッチ適用はコンポーネント
- 9. 最初の日付と月から月の最後の日付
- 10. 今日の日付は今日の日付で、最後の日付は5年ではない
- 11. 最高の結果の日付を返すSQLAlchemyクエリ
- 12. JavaScriptでモンキーパッチを理解するには
- 13. MySQLのクエリ自己最高の日付のために参加
- 14. 最高(最新)と最低(最も早い)日付を見つける方法
- 15. MySQLは最新の日付
- 16. jQuery最終日の日付
- 17. 最高の日付から離れたすべての行を削除
- 18. Linqを使用して異なるオプションと最新の日付でフィルタリングする
- 19. Excelで最も古い日付から最新の日付にソートすることはできません
- 20. カラムから最小日付と最大日付の間の日付を記入する方法
- 21. MySQLの日付フィールドのオプションの月または日PHP
- 22. モンキーパッチはユニットテストのための組み込み関数ですか?
- 23. 最新の日付
- 24. Java 8で使用する日付クラスはどれですか?
- 25. 特定の日付から最初と最後の日付を取得
- 26. カレンダーから日付を日付に変えて、最初のレコードはテーブルから
- 27. 初期化子はオプションの種類ではなく、「日付」
- 28. XCOPYコマンドファイルをコピーする日付オプション
- 29. Angular 4では、日付ピッカーで最小日付と最大日付を動的に設定する方法はありますか?
- 30. sql db2 - 最大日付とローリング30日目の2番目の最大日付
感謝を使用することができ、そして私はあなたと1つのビットを反対していません。私はモンキーパッチに挑戦しようとすると何度も噛まれ、やがて逃げる方法を見つけられなくなりました。私はそれが悪い考えであることをちょっと知っていました。それが私が質問して、他のアプローチを聞く理由です。しかし、それは全体的に啓発的な経験でした。 –
しかし、私は、昨日と明日のメソッドのためのいくつかのオーバーライドを残しました。私は、彼らが遅い間に間違った価値を生み出すように見えることを発見しました - ローカル値の代わりにUTC値を生成するような、タイムゾーンの問題があると思われます。 –
私はいつも昨日/ tomarrowが+/- 24時間の短い手だったと思った...これは本当ですか? – colinross