質問編集履歴

1

情報の追加

2020/08/06 15:01

投稿

YamauchiSadaka
YamauchiSadaka

スコア10

test CHANGED
File without changes
test CHANGED
@@ -38,6 +38,50 @@
38
38
 
39
39
  * `exists?`を消して、sqlが発行されないようにしてみましたが、それだと`if @reservations`が毎回trueになってしまい、望む挙動になりません。
40
40
 
41
+ * 以下のように、`p`を打って出力を確認した所、`---5---`と`---6---`の間には
42
+
43
+
44
+
45
+ `Reservation Exists? (0.3ms) SELECT 1 AS one FROM "reservations" WHERE "reservations"."date" = $1 LIMIT $2 [["date", "2020-08-06"], ["LIMIT", 1]]`
46
+
47
+ が出力されましたが、
48
+
49
+
50
+
51
+ `---1---`と`---2---`の間には何も出力されないので、2回発行されていないと自分は考えています。
52
+
53
+
54
+
55
+ ```ruby
56
+
57
+ p "---1---"
58
+
59
+ @reservations = Reservation.where(date: Date.current)
60
+
61
+ p "---2---"
62
+
63
+
64
+
65
+ = p "---4---"
66
+
67
+ - if current_user.admin? || current_user.adviser?
68
+
69
+ = p "---5---"
70
+
71
+ - if @reservations.exists?
72
+
73
+ = p "---6---"
74
+
75
+ = render "reservations", reservations: @reservations
76
+
77
+ = p "---7---"
78
+
79
+ ```
80
+
81
+
82
+
83
+ ですが、この確認方法が合っているかは自信がありません。
84
+
41
85
 
42
86
 
43
87
  上司からは「DBからデータを取ってきて、rubyでデータがあるかどうかのチェックし、データを表示すればSQL発行は1回で済む」と追加でアドバイスがありました(原文ママ)。