回答編集履歴
2
レコード取得方法の訂正
answer
CHANGED
@@ -3,12 +3,30 @@
|
|
3
3
|
**生SQLはだめです。**
|
4
4
|
なんでRails使ってるんですか
|
5
5
|
|
6
|
+
少し長めのコードなんですが、極力ActiveRecordオブジェクトを作成せず最後の方で纏めて返しています。
|
6
|
-
|
7
|
+
仕事の合間に5分くらいで作ったコードなので、もっといいロジックが出たらそちらを使ってください。
|
8
|
+
ちなみに再現もしてないので動作保障できません。
|
9
|
+
|
10
|
+
怪しいところ
|
11
|
+
①sort_by!のところにもしかするとblank判定が要るかもしれないです。
|
12
|
+
②storeのところのハッシュ追加がうまくいかないかもしれません。(うろ覚えなので)
|
13
|
+
|
7
14
|
model/post.rb
|
8
15
|
```ruby
|
9
|
-
# お気に入りの数が多いレコード順にソートする。
|
10
16
|
def self.sort_by_favorites
|
17
|
+
result = []
|
11
|
-
|
18
|
+
search_condition = {}
|
19
|
+
post_ids = Favorite.pluck(:post_id)
|
20
|
+
|
21
|
+
if post_ids.present?
|
22
|
+
post_ids.each { |post_id| search_hash.store(post_id, Favorite.where(post_id: post_id).count) }
|
23
|
+
search_condition.sort_by! { |key,val| -val }
|
24
|
+
end
|
25
|
+
|
26
|
+
if search_condition.present?
|
27
|
+
search_condition.each { |key, val| result << self.find(key) }
|
28
|
+
end
|
29
|
+
return result
|
12
30
|
end
|
13
31
|
```
|
14
32
|
|
1
訂正
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
```ruby
|
9
9
|
# お気に入りの数が多いレコード順にソートする。
|
10
10
|
def self.sort_by_favorites
|
11
|
-
|
11
|
+
#期待した値が取れないので暇があれば修正します
|
12
12
|
end
|
13
13
|
```
|
14
14
|
|