質問編集履歴

2

「ユーザーが何も入力しなかった場合」と「該当のユーザーが存在しなかった場合」が逆でしたので編集致しました。

2021/03/09 13:11

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  else
54
54
 
55
- # 該当のユーザーが存在しなかった場合。
55
+ # ユーザーが何も入力しなかった場合。
56
56
 
57
57
  @users = User.all.order(created_at: :desc).page(params[:page]).per(20)
58
58
 
@@ -60,7 +60,7 @@
60
60
 
61
61
  if @users == []
62
62
 
63
- # ユーザーが何も入力しなかった場合。
63
+ # 該当のユーザーが存在しなかった場合。
64
64
 
65
65
  @users = User.all.order(created_at: :desc).page(params[:page]).per(20)
66
66
 

1

form_withの内容、及びコントローラを追記致しました。

2021/03/09 13:11

投稿

punchan36
punchan36

スコア105

test CHANGED
File without changes
test CHANGED
@@ -12,23 +12,61 @@
12
12
 
13
13
  ```
14
14
 
15
- <p>User name</p>
15
+ <%= form_with url: users_path, method: :get, local: true do |f| %>
16
16
 
17
+ <p>User name</p>
18
+
17
- <%= f.search_field :name, :value => params[:name] %>
19
+ <%= f.search_field :name, :value => params[:name] %>
18
20
 
19
21
 
20
22
 
21
- <p>Keyword</p>
23
+ <p>Keyword</p>
22
24
 
23
- <%= f.search_field :introduction, :value => params[:introduction] %>
25
+ <%= f.search_field :introduction, :value => params[:introduction] %>
24
26
 
25
-
27
+
26
28
 
27
- <p>Gender</p>
29
+ <p>Gender</p>
28
30
 
29
- <%= f.radio_button :sex, "Male", :checked => true if params[:sex]&.include?("Male") %>Male
31
+ <%= f.radio_button :sex, "Male", :checked => true if params[:sex]&.include?("Male") %>Male
30
32
 
31
- <%= f.radio_button :sex, "Female", :checked => true if params[:sex]&.include?("Female") %>Female
33
+ <%= f.radio_button :sex, "Female", :checked => true if params[:sex]&.include?("Female") %>Female
34
+
35
+
36
+
37
+ <%= f.submit :search, :class => "btn-square-little-rich" %>
38
+
39
+ <% end %>
40
+
41
+ ```
42
+
43
+ **users_index.html.erb**
44
+
45
+ ```
46
+
47
+ def index
48
+
49
+ if params[:name].present? || params[:introduction].present? || params[:sex].present?
50
+
51
+ @users = User.where(['name LIKE ? AND introduction LIKE ? AND sex LIKE ?', "%#{params[:name]}%", "%#{params[:introduction]}%", "#{params[:sex]}%"]).page(params[:page]).per(20)
52
+
53
+ else
54
+
55
+ # 該当のユーザーが存在しなかった場合。
56
+
57
+ @users = User.all.order(created_at: :desc).page(params[:page]).per(20)
58
+
59
+ end
60
+
61
+ if @users == []
62
+
63
+ # ユーザーが何も入力しなかった場合。
64
+
65
+ @users = User.all.order(created_at: :desc).page(params[:page]).per(20)
66
+
67
+ end
68
+
69
+ end
32
70
 
33
71
  ```
34
72