質問編集履歴
2
追加対応時のエラーを追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -100,4 +100,20 @@
|
|
100
100
|
</table>
|
101
101
|
```
|
102
102
|
|
103
|
-
よろしくお願いいたします。
|
103
|
+
よろしくお願いいたします。
|
104
|
+
|
105
|
+
2020/09/25 追記
|
106
|
+
回答に記載いただいた[こちらの記事](https://qiita.com/ayies128/items/2c5596eef388ef92291b)を参考にコントローラー内の処理を変更したところ、発行されたSQL文に関するエラーが表示されました。
|
107
|
+
|
108
|
+
【変更内容】
|
109
|
+
```ここに言語を入力
|
110
|
+
def index
|
111
|
+
@q = User.joins(orders: :order_racket_infos).select("users.id, name, count(orders.id) as orders, sum(orders.amount) as total_amount, count(order_racket_infos.id), users.created_at, kit_shipped_date").where(del_flg: 1).where(orders: { order_completed: true }).ransack(params[:q])
|
112
|
+
@users = @q.result(distinct: true).order("users.created_at DESC")
|
113
|
+
end
|
114
|
+
```
|
115
|
+
|
116
|
+
【表示されたエラー】
|
117
|
+
```ここに言語を入力
|
118
|
+
Mysql2::Error: In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'gappari_api2_development.users.id'; this is incompatible with sql_mode=only_full_group_by
|
119
|
+
```
|
1
コードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
【users_controllerのindexメソッド】
|
39
39
|
```ここに言語を入力
|
40
40
|
def index
|
41
|
-
@q = User.where(del_flg: 1).includes(orders: :
|
41
|
+
@q = User.where(del_flg: 1).includes(orders: :order_items).ransack(params[:q])
|
42
42
|
@users = @q.result(distinct: true).order("created_at DESC")
|
43
43
|
end
|
44
44
|
```
|
@@ -67,12 +67,12 @@
|
|
67
67
|
</thead>
|
68
68
|
<% @users.each do |user| %>
|
69
69
|
<% orders = user.orders.where(order_completed: true) %>
|
70
|
-
<%
|
70
|
+
<% total_items = 0 %>
|
71
71
|
<% amounts = 0 %>
|
72
72
|
<% orders.each do |order| %>
|
73
73
|
<%# 累計本数を取得 %>
|
74
|
-
<%
|
74
|
+
<% order_items = order.order_items.count %>
|
75
|
-
<%
|
75
|
+
<% total_items += order_items %>
|
76
76
|
<%# 累計金額を取得 %>
|
77
77
|
<% amounts += order.amount %>
|
78
78
|
<% end %>
|
@@ -88,7 +88,7 @@
|
|
88
88
|
<td class="align-middle">
|
89
89
|
<%= orders.count %>回
|
90
90
|
</td>
|
91
|
-
<td class="align-middle"><%=
|
91
|
+
<td class="align-middle"><%= total_items.to_s(:delimited) %>本</td>
|
92
92
|
<td class="align-middle text-right"><%= amounts.to_s(:delimited) %>円</td>
|
93
93
|
<td class="align-middle"><%= l user.created_at, format: :very_short %></td>
|
94
94
|
<td class="align-middle">
|