回答編集履歴
6
追記
test
CHANGED
@@ -47,3 +47,19 @@
|
|
47
47
|
で行けるかなぁ。
|
48
48
|
|
49
49
|
user_idの重複をどう扱うのかな、~~
|
50
|
+
|
51
|
+
Songか、うっかりしてました。
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
Song.joins(chords: :practices).
|
56
|
+
|
57
|
+
sort_by{|song|
|
58
|
+
|
59
|
+
song.chords.map{|chord| chord.practices.map(&:user_id)}.
|
60
|
+
|
61
|
+
flatten.uniq.size}
|
62
|
+
|
63
|
+
```
|
64
|
+
|
65
|
+
では? あれ、、、、 N+1 になってたら includesの方でも試してください。
|
5
修正
test
CHANGED
@@ -38,10 +38,12 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
+
だめっぽい
|
42
|
+
|
41
|
-
で、真面目に①に取り組むと
|
43
|
+
~~で、真面目に①に取り組むと
|
42
44
|
|
43
45
|
song.chords.joins(:practices).group('practices.chord_id').order(count('practices.user_id'))
|
44
46
|
|
45
47
|
で行けるかなぁ。
|
46
48
|
|
47
|
-
user_idの重複をどう扱うのかな、
|
49
|
+
user_idの重複をどう扱うのかな、~~
|
4
一部修正
test
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
で、真面目に①に取り組むと
|
42
42
|
|
43
|
-
song.chords.joins(:practices).group('practices.
|
43
|
+
song.chords.joins(:practices).group('practices.chord_id').order(count('practices.user_id'))
|
44
44
|
|
45
45
|
で行けるかなぁ。
|
46
46
|
|
3
追記
test
CHANGED
@@ -31,3 +31,17 @@
|
|
31
31
|
```
|
32
32
|
|
33
33
|
で。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
なお、`song[:song_practices] = song.chords.....` ではDBに反映されませんから「テーブルにそんなカラムはないよエラー」になります。仮想属性を使うなら、一度のアクセスで解決しないとだめです。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
で、真面目に①に取り組むと
|
42
|
+
|
43
|
+
song.chords.joins(:practices).group('practices.user_id').order(count('practices.user_id'))
|
44
|
+
|
45
|
+
で行けるかなぁ。
|
46
|
+
|
47
|
+
user_idの重複をどう扱うのかな、
|
2
追記
test
CHANGED
@@ -21,3 +21,13 @@
|
|
21
21
|
pageingが必要な場合は(私の実力では)ちと厄介。
|
22
22
|
|
23
23
|
pagingが不要なら、③連想配列に対してインスタンスメソッドを定義しないでも可能です
|
24
|
+
|
25
|
+
```
|
26
|
+
|
27
|
+
chords = song.chords.joins(:practices).
|
28
|
+
|
29
|
+
sort_by{|chord| chord.practices.map(&:user_id).uniq.size}
|
30
|
+
|
31
|
+
```
|
32
|
+
|
33
|
+
で。
|
1
追記
test
CHANGED
@@ -13,3 +13,11 @@
|
|
13
13
|
a.c # => 3
|
14
14
|
|
15
15
|
```
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
ただこれですと、pagingはできないですね。
|
20
|
+
|
21
|
+
pageingが必要な場合は(私の実力では)ちと厄介。
|
22
|
+
|
23
|
+
pagingが不要なら、③連想配列に対してインスタンスメソッドを定義しないでも可能です
|