質問編集履歴

1

form_with と simple_form_for それぞれ試した結果の詳細を追記

2021/05/06 13:40

投稿

mns
mns

スコア3

test CHANGED
@@ -1 +1 @@
1
- 【Rails】form_withを使用した複数条件での検索機能
1
+ 【Rails】複数条件での検索機能が実装出来ない
test CHANGED
@@ -1,42 +1,34 @@
1
- railsで検索機能を持ったwebアプリケーションを作成中なのですが2点躓いています。
1
+ railsで検索機能を持ったwebアプリケーションを作成中なのですが
2
-
3
- 特にModel等はまだ仮実装的なのですが、ViewとControllerで現状問題がどこにあるのか
2
+
4
-
5
- ご教授ただけると助かります。
3
+ 検索機能の実装で躓ています。
4
+
6
-
5
+ 少し長くなりますが有識者の方ご教授をお願いいたします。
7
-
8
-
9
-
10
-
6
+
7
+
8
+
11
- **やりたいこと**
9
+ ###実現したいこと
12
-
13
-
14
-
10
+
11
+
12
+
15
- ・複数条件での検索機能実装
13
+ ・複数条件でのDB検索機能実装
14
+
16
-
15
+  (最終的にはテキストボックス1、プルダウンリスト2、チェックボックス1の予定)
17
-
18
-
16
+
17
+
18
+
19
- **現状できていること**
19
+ ##試したこと・現状できていること
20
+
20
-
21
+  2つのformで試しましたが、それぞれ別の問題が発生しています。
22
+
23
+
24
+
21
-
25
+  ***【form_withを使用した実装】***
22
-
26
+
23
- ・テキストボックスでの単体条件での検索と表示
27
+  ・テキストボックスでの単体条件での検索と表示は実現済み
24
-
25
-
26
-
28
+
27
- **躓ていること**
29
+  ・セレクトボックス(f.select)が画面に出力されな 
28
-
29
-
30
-
30
+
31
- ①検索画面のform_with内でのセレクトボックス(プルダウン)表示
31
+  ※f.date_field等は試したところ問題なく出力される
32
-
33
-
34
-
35
- ②複数条件での絞り込み検索の際の実装(主にコントローラ部分)がうまくいかない
36
-
37
-
38
-
39
-
40
32
 
41
33
  ```View
42
34
 
@@ -60,8 +52,6 @@
60
52
 
61
53
 
62
54
 
63
- <!-- 【!TODO】pagenate-->
64
-
65
55
  <ul class="workouts">
66
56
 
67
57
  <%= render @workouts %>
@@ -74,6 +64,88 @@
74
64
 
75
65
 
76
66
 
67
+ ![イメージ説明](91e3c861cb4daca54faecb3e2e767427.png)
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+  ***【simple_form_forを使用した実装】***
78
+
79
+  ・テキストボックス、セレクトボックスの画面出力は実現済み
80
+
81
+  ・チェックボックス(f.check_box)が出力されない
82
+
83
+  ・検索が効かない(Controllerでprams[:menu]がnil)
84
+
85
+
86
+
87
+ ```View
88
+
89
+ <% @workout = Workout.new unless @workout %>
90
+
91
+
92
+
93
+ <p>検索</p>
94
+
95
+
96
+
97
+ <%= simple_form_for workout_index_path,:method => 'get' do |f| %>
98
+
99
+ <%= f.input :menu %>
100
+
101
+ <%= f.label :select1 %>
102
+
103
+ <%= f.select :select1, [["1-1","1"],["1-2","2"],["1-3","3"]],
104
+
105
+ { include_blank: true, selected: 0 }, { id: "select1", class: "browser-default" } %>
106
+
107
+ <%= f.label :select2 %>
108
+
109
+ <%= f.select :select2, [["2-1","1"],["2-2","2"],["2-3","3"]],
110
+
111
+ { include_blank: true, selected: 0 }, { id: "select2", class: "browser-default" } %>
112
+
113
+ <%= f.label :check1 , checked: true%>
114
+
115
+ <%= f.check_box :check1 %>
116
+
117
+ <%= f.label :check2 , checked: true%>
118
+
119
+ <%= f.check_box :check2 %>
120
+
121
+ <%= f.button :submit ,"Search" %>
122
+
123
+
124
+
125
+ <ul class="workouts">
126
+
127
+ <%= render @workouts %>
128
+
129
+ </ul>
130
+
131
+
132
+
133
+ ```
134
+
135
+
136
+
137
+ ![イメージ説明](2aaa0d4c1128c2f6e3f2934637c5db29.png)
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ ##共通ソース(model,controller,routes)
146
+
147
+
148
+
77
149
  ```Controller
78
150
 
79
151
  class WorkoutsController < ApplicationController