回答編集履歴

3

コードの修正

2016/04/05 00:47

投稿

ShoheiUyama
ShoheiUyama

スコア206

test CHANGED
@@ -24,7 +24,9 @@
24
24
 
25
25
  params.each do | key, val |
26
26
 
27
- next if val.reject(&:blank?).blank?
27
+ val.reject!(&:blank?)
28
+
29
+ next if val.blank?
28
30
 
29
31
 
30
32
 

2

文法の修正

2016/04/05 00:47

投稿

ShoheiUyama
ShoheiUyama

スコア206

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  condition = []
24
24
 
25
- par.each do | key, val |
25
+ params.each do | key, val |
26
26
 
27
27
  next if val.reject(&:blank?).blank?
28
28
 

1

書式の改善、内容の追加

2016/04/05 00:33

投稿

ShoheiUyama
ShoheiUyama

スコア206

test CHANGED
@@ -1,3 +1,23 @@
1
+ scopeでということなので
2
+
3
+ fruit = Favorite.arel_table[:fruit]
4
+
5
+ music = Favorite.arel_table[:misic]
6
+
7
+ game = Favorite.arel_table[:game]
8
+
9
+
10
+
11
+ .where(fruit.matches("%1%").or(fruit.matches("%2%"))).where(music.matches("%2%"))....
12
+
13
+ のように繋ぎたいのかな?と思いましたが・・・
14
+
15
+
16
+
17
+ もし自分が同じようなことを再現するとしたらこんな感じに書くと思います。
18
+
19
+
20
+
1
21
  params = {"fruit" => ["1","3","5"],"music" => ["1","2"],"game" => ["3","4"],"sports" => [""]}
2
22
 
3
23
  condition = []
@@ -24,6 +44,4 @@
24
44
 
25
45
 
26
46
 
27
- paramsのキーの数が変化するという前提で書くとこんな感じでしょうか・・・?
28
-
29
47
  さらっと書いたのであまり綺麗なコードではないですけど、一応も求めてるSQLは返ってくると思います。