回答編集履歴

2

再代入をしないコードの書き方に変更

2017/05/18 18:15

投稿

gouf
gouf

スコア2321

test CHANGED
@@ -8,17 +8,27 @@
8
8
 
9
9
  # 参照するキー値がなかった場合にnil が返る
10
10
 
11
- @date_from = params.dig(:q, :imp_date_gteq)
11
+ date_params = [parms.dig(:q, :imp_date_gteq), params.dig(:q, :imp_date_lteq)]
12
12
 
13
+ # 両方の値がnil か判定した結果を代入
14
+
13
- @date_to = params.dig(:q, :imp_date_lteq)
15
+ date_both_nil = date_params.compact.size.zero?
14
16
 
15
17
 
16
18
 
17
- # 両方の値がnil の場合今日の日付を再代入
19
+ # 日付データが両方空か、内容応じて代入値を振り分け
18
20
 
19
- date_both_nil = [@date_from, @date_to].compact.size.zero?
21
+ @date_from, @date_to =
20
22
 
23
+ if date_both_nil
24
+
21
- @date_from, @date_to = [Date.today, Date.today] if date_both_nil
25
+ [Date.today, Date.today]
26
+
27
+ else
28
+
29
+ date_params
30
+
31
+ end
22
32
 
23
33
  end
24
34
 

1

「両方が空だった場合」を考慮したコードに変更

2017/05/18 18:15

投稿

gouf
gouf

スコア2321

test CHANGED
@@ -8,9 +8,17 @@
8
8
 
9
9
  # 参照するキー値がなかった場合にnil が返る
10
10
 
11
- @date_from = params.dig(:q, :imp_date_gteq) || Date.today
11
+ @date_from = params.dig(:q, :imp_date_gteq)
12
12
 
13
- @date_to = params.dig(:q, :imp_date_lteq) || Date.today
13
+ @date_to = params.dig(:q, :imp_date_lteq)
14
+
15
+
16
+
17
+ # 両方の値がnil の場合に今日の日付を再代入
18
+
19
+ date_both_nil = [@date_from, @date_to].compact.size.zero?
20
+
21
+ @date_from, @date_to = [Date.today, Date.today] if date_both_nil
14
22
 
15
23
  end
16
24