質問するログイン新規登録

回答編集履歴

1

追記

2016/02/04 10:12

投稿

katoy
katoy

スコア22328

answer CHANGED
@@ -44,4 +44,31 @@
44
44
  > 20.4 最大値
45
45
  > テーブルに含まれるフィールドの最大値を得るには、そのテーブルを持つクラスに対してmaximumメソッドを呼び出します。このメソッド呼び出しは以下のようなものになります。
46
46
  > Client.maximum("age")
47
- > ...
47
+ > ...
48
+
49
+ 追記: 2016-02-04
50
+ created_at で desc でsort して、limit をとったら、ruby 側で目的とする項目でソートするのは如何でしょう。
51
+ ```
52
+ Frame number: 0/20
53
+ [1] pry(main)> xx = Client.order("created_at desc").limit(6)
54
+ Client Load (130.5ms) SELECT "clients".* FROM "clients" ORDER BY created_at desc LIMIT 6
55
+ +----+------------+-----------+--------+--------------+-----------------+-----------------+
56
+ | id | first_name | last_name | locked | orders_count | created_at | updated_at |
57
+ +----+------------+-----------+--------+--------------+-----------------+-----------------+
58
+ | 12 | Nick | | false | | 2015-12-27 0... | 2015-12-27 0... |
59
+ | 11 | AndyY | | true | | 2015-12-27 0... | 2015-12-27 0... |
60
+ | 10 | AndyX | | true | | 2015-12-27 0... | 2015-12-27 0... |
61
+ | 9 | Andy | Smith | false | | 2015-12-27 0... | 2015-12-27 0... |
62
+ | 8 | ussel | Smith | false | | 2015-12-27 0... | 2015-12-27 0... |
63
+ | 7 | 安倍 | 次郎 | true | 3 | 2015-12-27 0... | 2015-12-27 0... |
64
+ +----+------------+-----------+--------+--------------+-----------------+-----------------+
65
+ 6 rows in set
66
+ [2] pry(main)> xx.to_a.sort{|a,b| a.orders_count.to_i <=> b.orders_count.to_i}.reverse[0]
67
+ +----+------------+-----------+--------+--------------+-----------------+-----------------+
68
+ | id | first_name | last_name | locked | orders_count | created_at | updated_at |
69
+ +----+------------+-----------+--------+--------------+-----------------+-----------------+
70
+ | 7 | 安倍 | 次郎 | true | 3 | 2015-12-27 0... | 2015-12-27 0... |
71
+ +----+------------+-----------+--------+--------------+-----------------+-----------------+
72
+ 1 row in set
73
+ [3] pry(main)>
74
+ ```