質問編集履歴
6
DBログの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -172,4 +172,44 @@
|
|
172
172
|
|
173
173
|
|
174
174
|
|
175
|
+
(ログを見てみる)
|
176
|
+
|
177
|
+
```
|
178
|
+
|
179
|
+
[1m[36mSQL (3.3ms)[0m [1mSELECT DISTINCT "restaurants"."id", menus.price AS alias_0 FROM "restaurants" LEFT OUTER JOIN "menus" ON "menus"."restaurant_id" = "restaurants"."id" AND "menus"."data_status" = $1 WHERE "restaurants"."data_status" = $2 ORDER BY menus.price ASC LIMIT 10 OFFSET 0[0m [["data_status", "active"], ["data_status", "active"]]
|
180
|
+
|
181
|
+
[1m[35m (3.2ms)[0m SELECT COUNT(DISTINCT "restaurants"."id") FROM "restaurants" LEFT OUTER JOIN "menus" ON "menus"."restaurant_id" = "restaurants"."id" AND "menus"."data_status" = $1 WHERE "restaurants"."data_status" = $2 AND "restaurants"."id" IN (13, 4, 5, 10, 17, 2, 6, 18, 6, 5) [["data_status", "active"], ["data_status", "active"]]
|
182
|
+
|
183
|
+
[1m[36m (3.1ms)[0m [1mSELECT COUNT(DISTINCT "restaurants"."id") FROM "restaurants" LEFT OUTER JOIN "menus" ON "menus"."restaurant_id" = "restaurants"."id" AND "menus"."data_status" = $1 WHERE "restaurants"."data_status" = $2[0m [["data_status", "active"], ["data_status", "active"]]
|
184
|
+
|
185
|
+
[1m[35mCACHE (0.0ms)[0m SELECT DISTINCT "restaurants"."id", menus.price AS alias_0 FROM "restaurants" LEFT OUTER JOIN "menus" ON "menus"."restaurant_id" = "restaurants"."id" AND "menus"."data_status" = $1 WHERE "restaurants"."data_status" = $2 ORDER BY menus.price ASC LIMIT 10 OFFSET 0 [["data_status", "active"], ["data_status", "active"]]
|
186
|
+
|
187
|
+
```
|
188
|
+
|
189
|
+
以上のようなログが出ているのですが
|
190
|
+
|
191
|
+
```
|
192
|
+
|
193
|
+
ORDER BY menus.price
|
194
|
+
|
195
|
+
```
|
196
|
+
|
197
|
+
これが入っていると
|
198
|
+
|
199
|
+
```
|
200
|
+
|
201
|
+
"restaurants"."id" IN (13, 4, 5, 10, 17, 2, 6, 18, 6, 5)
|
202
|
+
|
203
|
+
```
|
204
|
+
|
205
|
+
これが入るのですが、なぜここで5,6が重複してしまうのでしょうか。
|
206
|
+
|
207
|
+
これが原因で、10件表示としているにもかかわらず8件しか出ない、というようになっていると思います。
|
208
|
+
|
209
|
+
並び順を指定するだけで重複するようなことになってしまうのが、よく分かりません。。。
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
175
215
|
宜しくお願い致します。
|
5
エラーの説明追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -164,6 +164,12 @@
|
|
164
164
|
|
165
165
|
|
166
166
|
|
167
|
+
また、1ページあたり100と極端に設定すると
|
168
|
+
|
169
|
+
DBに入ってある19つのレストランが全て表示されます。
|
170
|
+
|
171
|
+
不可解です。。
|
172
|
+
|
167
173
|
|
168
174
|
|
169
175
|
宜しくお願い致します。
|
4
エラー部分の説明を書き足しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -140,4 +140,30 @@
|
|
140
140
|
|
141
141
|
|
142
142
|
|
143
|
+
|
144
|
+
|
145
|
+
(書き忘れ)
|
146
|
+
|
147
|
+
kaminariで表示する検索結果の文言についてです。
|
148
|
+
|
149
|
+
page_entries_info
|
150
|
+
|
151
|
+
というヘルパーメソッドで検索結果の数について表示をしてくれるのですが
|
152
|
+
|
153
|
+
そこで
|
154
|
+
|
155
|
+
「19つの全てのレストランを表示しています」と出ているにもかかわらず
|
156
|
+
|
157
|
+
1ページあたり10つを表示と設定してあるページに
|
158
|
+
|
159
|
+
8つしかレストランが表示されません。
|
160
|
+
|
161
|
+
データを取り出す部分と、kaminariと
|
162
|
+
|
163
|
+
両方ともにおかしいところがあるのではないかと思っております。
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
143
169
|
宜しくお願い致します。
|
3
プログラムコードが間違っていました。。。
test
CHANGED
File without changes
|
test
CHANGED
@@ -122,9 +122,9 @@
|
|
122
122
|
|
123
123
|
scope :sort, -> (sort) {
|
124
124
|
|
125
|
-
if sort.present? && sort == "p
|
125
|
+
if sort.present? && sort == "price"
|
126
126
|
|
127
|
-
order("restaurants.pickup desc")
|
127
|
+
order("menus.price asc, restaurants.pickup desc")
|
128
128
|
|
129
129
|
end
|
130
130
|
|
2
プログラムが間違っていたので修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -76,7 +76,7 @@
|
|
76
76
|
|
77
77
|
```ここに言語を入力
|
78
78
|
|
79
|
-
@restaurants = Restaurant.where(:data_status => "active").genre(params[:genre]).area(params[:area]).includes(:restaurant_imgs, :menus).where(restaurant_imgs: {size: "normal"}).or
|
79
|
+
@restaurants = Restaurant.where(:data_status => "active").genre(params[:genre]).area(params[:area]).includes(:restaurant_imgs, :menus).where(restaurant_imgs: {size: "normal"}).sort(params[:sort]).page(@page).per(10)
|
80
80
|
|
81
81
|
```
|
82
82
|
|
1
余計な部分を省きました\(1回目\)
test
CHANGED
File without changes
|
test
CHANGED
@@ -122,15 +122,7 @@
|
|
122
122
|
|
123
123
|
scope :sort, -> (sort) {
|
124
124
|
|
125
|
-
if sort.present? && sort == "michelin"
|
126
|
-
|
127
|
-
order("restaurants.rank DESC, restaurants.pickup desc")
|
128
|
-
|
129
|
-
elsif sort.present? && sort == "price"
|
130
|
-
|
131
|
-
order("menus.price asc, restaurants.pickup desc")
|
132
|
-
|
133
|
-
|
125
|
+
if sort.present? && sort == "popular"
|
134
126
|
|
135
127
|
order("restaurants.pickup desc")
|
136
128
|
|