###環境
Ruby 2.3.3p222
Rails 5.0.3
###問題
時間順でのorderメソッドがうまく反映されずにいます。
item(商品)モデルに紐づくDayTimeモデル(「Day(曜日)」と「Time(時間)」を持つ)を時間順に並べることに苦戦しています。
コンソール上でDayTimeの一覧を「order(:time)(時間順)」で表示を試みていますが、どうしてもその通りには並ばずにいます。
尚、他のカラムでのソートは問題なく使える状況です。
console
1irb(main):016:0> DayTime.where(item_id:7..11).order(:time) 2 DayTime Load (0.5ms) SELECT "day_times".* FROM "day_times" WHERE ("day_times"."item_id" BETWEEN ? AND ?) ORDER BY "day_times"."time" ASC [["item_id", 7], ["item_id", 11]] 3+---+-------+----+--------------------------------------+----------------------------------+----------------------------------+ 4| id | item_id | day |time | created_at | updated_at | 5+---+-------+----+--------------------------------------+----------------------------------+----------------------------------+ 6| 64 | 10 | 7 | 2000-01-01 08:40:00 +0900 | 2017-06-04 14:40:14 UTC | 2017-06-04 23:42:23 UTC | 7| 23 | 8 | 7 | 2000-01-01 20:00:00 +0900 | 2017-06-01 23:15:37 UTC | 2017-06-01 23:15:37 UTC | 8| 24 | 8 | 7 | 2000-01-01 23:00:00 +0900 | 2017-06-01 23:15:37 UTC | 2017-06-01 23:15:37 UTC | 9| 25 | 8 | 7 | 2000-01-01 00:00:00 +0900 | 2017-06-01 23:15:37 UTC | 2017-06-01 23:15:37 UTC | 10| 39 | 8 | 7 | 2000-01-01 01:00:00 +0900 | 2017-06-01 23:58:50 UTC | 2017-06-01 23:58:50 UTC | 11| 36 | 9 | 7 | 2000-01-01 01:00:00 +0900 | 2017-06-01 23:58:20 UTC | 2017-06-01 23:58:20 UTC | 12| 28 | 9 | 7 | 2000-01-01 02:00:00 +0900 | 2017-06-01 23:16:21 UTC | 2017-06-01 23:16:21 UTC | 13| 40 | 8 | 7 | 2000-01-01 03:00:00 +0900 | 2017-06-01 23:58:50 UTC | 2017-06-01 23:58:50 UTC | 14| 29 | 9 | 7 | 2000-01-01 03:00:00 +0900 | 2017-06-01 23:16:21 UTC | 2017-06-01 23:16:21 UTC | 15| 26 | 8 | 7 | 2000-01-01 04:00:00 +0900 | 2017-06-01 23:15:37 UTC | 2017-06-01 23:15:37 UTC | 16| 20 | 7 | 7 | 2000-01-01 05:00:00 +0900 | 2017-06-01 23:14:50 UTC | 2017-06-01 23:14:50 UTC | 17| 30 | 9 | 7 | 2000-01-01 05:00:00 +0900 | 2017-06-01 23:16:21 UTC | 2017-06-01 23:16:21 UTC | 18| 37 | 9 | 7 | 2000-01-01 06:00:00 +0900 | 2017-06-01 23:58:20 UTC | 2017-06-01 23:58:20 UTC | 19| 38 | 9 | 7 | 2000-01-01 07:00:00 +0900 | 2017-06-01 23:58:20 UTC | 2017-06-01 23:58:20 UTC | 20| 21 | 7 | 7 | 2000-01-01 08:00:00 +0900 | 2017-06-01 23:14:50 UTC | 2017-06-01 23:14:50 UTC | 21| 27 | 8 | 7 | 2000-01-01 08:00:00 +0900 | 2017-06-01 23:15:37 UTC | 2017-06-01 23:21:13 UTC | 22| 31 | 9 | 7 | 2000-01-01 08:00:00 +0900 | 2017-06-01 23:16:21 UTC | 2017-06-01 23:16:21 UTC | 23| 22 | 7 | 7 | 2000-01-01 09:00:00 +0900 | 2017-06-01 23:14:50 UTC | 2017-06-01 23:14:50 UTC | 24| 41 | 8 | 7 | 2000-01-01 12:00:00 +0900 | 2017-06-01 23:58:50 UTC | 2017-06-01 23:58:50 UTC | 25| 42 | 8 | 7 | 2000-01-01 14:00:00 +0900 | 2017-06-01 23:58:50 UTC | 2017-06-01 23:58:50 UTC | 26| 50 | 7 | 7 | 2000-01-01 21:00:00 +0900 | 2017-06-02 16:14:34 UTC | 2017-06-02 16:14:34 UTC | 27| 51 | 7 | 7 | 2000-01-01 22:00:00 +0900 | 2017-06-02 16:14:34 UTC | 2017-06-02 16:14:34 UTC | 28| 52 | 7 | 7 | 2000-01-01 23:00:00 +0900 | 2017-06-02 16:14:34 UTC | 2017-06-02 16:14:34 UTC | 29| 53 | 7 | 7 | 2000-01-01 00:00:00 +0900 | 2017-06-02 16:14:34 UTC | 2017-06-02 16:14:34 UTC | 30| 54 | 7 | 7 | 2000-01-01 01:00:00 +0900 | 2017-06-02 16:14:34 UTC | 2017-06-02 16:14:34 UTC | 31| 61 | 10 | 7 | 2000-01-01 01:00:00 +0900 | 2017-06-02 16:17:00 UTC | 2017-06-02 16:17:00 UTC | 32| 55 | 7 | 7 | 2000-01-01 02:00:00 +0900 | 2017-06-02 16:14:34 UTC | 2017-06-02 16:14:34 UTC | 33| 62 | 10 | 7 | 2000-01-01 02:00:00 +0900 | 2017-06-02 16:18:01 UTC | 2017-06-02 16:18:01 UTC | 34| 63 | 10 | 7 | 2000-01-01 06:00:00 +0900 | 2017-06-02 21:24:32 UTC | 2017-06-02 21:24:32 UTC | 35| 65 | 10 | 7 | 2000-01-01 07:00:00 +0900 | 2017-06-04 23:43:11 UTC | 2017-06-04 23:43:11 UTC | 36| 67 | 11 | 7 | 2000-01-01 08:00:00 +0900 | 2017-06-05 03:22:32 UTC | 2017-06-05 03:22:32 UTC | 37| 66 | 11 | 7 | 2000-01-01 10:00:00 +0900 | 2017-06-05 03:22:32 UTC | 2017-06-05 03:22:32 UTC | 38| 69 | 11 | 1 | 2000-01-01 14:00:00 +0900 | 2017-06-05 03:22:32 UTC | 2017-06-05 03:22:32 UTC | 39| 68 | 11 | 2 | 2000-01-01 16:00:00 +0900 | 2017-06-05 03:22:32 UTC | 2017-06-05 03:22:32 UTC | 40+---+-------+----+--------------------------------------+----------------------------------+----------------------------------+ 4134 rows in set
TimeZoneに原因があるのかと思い、approcation.rbを以下のように変更しました。
その他の原因箇所が検討もつかない状況ですので、お力をお借りできますと幸いです。
Ruby
1approcarion.rb 2 3+ config.time_zone = 'Tokyo' 4+ config.active_record.time_zone_aware_types = [:datetime, :time] 5+ config.active_record.default_timezone = :local
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/09 08:07
2017/06/09 08:25 編集
2017/06/10 07:12
2017/06/10 07:16 編集