質問編集履歴

2

検索機能部分のview、コントローラーを追記致しました。

2020/01/14 07:54

投稿

arinc0
arinc0

スコア31

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,61 @@
77
77
  66,67行目に関してransackを使用すると、`name`は問題なく検索が行われ、`description`に関してはうまく検索が行われません。
78
78
 
79
79
  お手数ですが確認お願い致します。
80
+
81
+
82
+
83
+ ```erb
84
+
85
+ <li class="dropdown searchBox">
86
+
87
+ <%= link_to "javascript:void(0)", class: "dropdown-toggle", 'data-toggle': :dropdown do %>
88
+
89
+ <i class="fa fa-search"></i>
90
+
91
+ <% end %>
92
+
93
+ <ul class="dropdown-menu dropdown-menu-right">
94
+
95
+ <%= form_with url: potepan_products_search_path, id: "form01", method: :get, local: true do |form| %>
96
+
97
+ <li>
98
+
99
+ <span class="input-group">
100
+
101
+ <%= form.text_field "searchWord", class: "form-control", placeholder: "Search…", 'aria-describedby': "basic-addon2" %>
102
+
103
+ <span type="btn" class="input-group-addon addPointer" id="basic-addon2">検索 </span>
104
+
105
+ </span>
106
+
107
+ </li>
108
+
109
+ <% end %>
110
+
111
+ </ul>
112
+
113
+ </li>
114
+
115
+
116
+
117
+ ```
118
+
119
+
120
+
121
+ ```controller
122
+
123
+ def search
124
+
125
+ @searchWord = params[:searchWord]
126
+
127
+ searched_products = Spree::Product.ransack(description_cont: params[:searchWord]).result.includes(variants_including_master: %i[images prices])
128
+
129
+ @products = searched_products
130
+
131
+ end
132
+
133
+ ```
134
+
135
+
136
+
137
+ ちなみにコントローラーの`description_cont`を`name_cont`とした場合には正常な動作を確認しております。合わせて確認いただけたらと幸いです。

1

内容を追記いたしました。

2020/01/14 07:54

投稿

arinc0
arinc0

スコア31

test CHANGED
File without changes
test CHANGED
@@ -33,3 +33,47 @@
33
33
  `text`型だと特別な手順が必要なのでしょうか?
34
34
 
35
35
  参照記事やアドバイスなど頂けたらと思います。
36
+
37
+
38
+
39
+ ---追記------------------------------------------↓
40
+
41
+ わかりにくくてすみません。
42
+
43
+ 検索条件がうまく渡されないのを改善したいと考えております。
44
+
45
+
46
+
47
+ ```
48
+
49
+ [65] pry(main)> Spree::Product.where("description LIKE ?", "%BBB%")
50
+
51
+ => Spree::Product Load (1.2ms) SELECT `spree_products`.* FROM `spree_products` WHERE `spree_products`.`deleted_at` IS NULL AND (description LIKE '%BBB%')
52
+
53
+ []
54
+
55
+ [66] pry(main)> Spree::Product.where("name LIKE ?", "%BBB%")
56
+
57
+ => Spree::Product Load (1.8ms) SELECT `spree_products`.* FROM `spree_products` WHERE `spree_products`.`deleted_at` IS NULL AND (name LIKE '%BBB%')
58
+
59
+ []
60
+
61
+ [67] pry(main)> Spree::Product.ransack(name_cont: "AAA").result
62
+
63
+ => Spree::Product Load (1.2ms) SELECT `spree_products`.* FROM `spree_products` WHERE `spree_products`.`deleted_at` IS NULL AND `spree_products`.`name` LIKE '%AAA%'
64
+
65
+ []
66
+
67
+ [68] pry(main)> Spree::Product.ransack(description_cont: "AAA").result
68
+
69
+ => Spree::Product Load (3.2ms) SELECT `spree_products`.* FROM `spree_products` WHERE `spree_products`.`deleted_at` IS NULL
70
+
71
+ ```
72
+
73
+
74
+
75
+ 65,66行目に関しては直接`LIKE`検索をすると正常に検索が行われるのですが、
76
+
77
+ 66,67行目に関してransackを使用すると、`name`は問題なく検索が行われ、`description`に関してはうまく検索が行われません。
78
+
79
+ お手数ですが確認お願い致します。