回答編集履歴

1

追記。

2020/10/29 10:09

投稿

bracket_i
bracket_i

スコア193

test CHANGED
@@ -9,3 +9,119 @@
9
9
  - 検索フォームにType(戦型)のチェックボックス作る
10
10
 
11
11
  - 選択したTypeによるOR検索を実装する
12
+
13
+
14
+
15
+ --------
16
+
17
+
18
+
19
+ **なんとなくやりたいこと分かってきたので追記です。2020/10/29 19:05**
20
+
21
+ **上のことは忘れてください。**
22
+
23
+
24
+
25
+ #### やりたいこと
26
+
27
+ 複数の条件で絞り込み検索を行いたい。
28
+
29
+
30
+
31
+ ```
32
+
33
+ index画面-入力項目
34
+
35
+  相手:text_field (現状できてるのはこれだけ)
36
+
37
+  結果:プルダウンで選択する
38
+
39
+  戦型:プルダウンで選択する
40
+
41
+  [検索]
42
+
43
+ ```
44
+
45
+
46
+
47
+ というような画面で検索したい。。。という前提が正しいとして。
48
+
49
+
50
+
51
+ #### プルダウンメニュー/セレクトボックスの作り方
52
+
53
+ [qiita](https://qiita.com/annaaida/items/553b54a465cd60614f95)
54
+
55
+
56
+
57
+ チェックボックスは作れたということなので参考をもとに作成してください。
58
+
59
+
60
+
61
+ 結果プルダウン:result
62
+
63
+ 戦型プルダウン:type
64
+
65
+ とそれぞれ名前つけたとして、
66
+
67
+
68
+
69
+ app/controllers/kifus_controller.rb
70
+
71
+ ```diff
72
+
73
+ def search
74
+
75
+ - @kifus = Kifu.search(params[:keyword])
76
+
77
+ + @kifus = Kifu.search(params)
78
+
79
+ end
80
+
81
+ ```
82
+
83
+ app/models/kifu.rb
84
+
85
+ ```diff
86
+
87
+ def self.search(search)
88
+
89
+ if search != ""
90
+
91
+ - Kifu.where('opponent LIKE(?)', "%#{search}%")
92
+
93
+ + Kifu.where('opponent LIKE(?)', "%#{search[:keyword]}%").where(result_id: search[:result]).where(type_id: search[:type])
94
+
95
+ else
96
+
97
+ Kifu.all
98
+
99
+ end
100
+
101
+ end
102
+
103
+ ```
104
+
105
+
106
+
107
+ といった感じでどうでしょう?
108
+
109
+
110
+
111
+ #### 質問の主題について
112
+
113
+
114
+
115
+ > 現在のコードと参考のコードがどう結びつくかが分からなかったです。
116
+
117
+
118
+
119
+ 複数の条件で検索したい場合は、 `where` メソッドを連結します。
120
+
121
+
122
+
123
+
124
+
125
+ 勘違いして迷走して申し訳なかったです。
126
+
127
+ これも間違ってたら目も当てられない。