質問編集履歴

5

解決しました

2020/03/04 03:53

投稿

koichiro516
koichiro516

スコア4

test CHANGED
File without changes
test CHANGED
@@ -333,13 +333,3 @@
333
333
 
334
334
 
335
335
  このようなバリデーションが機能しているのに正しい入力の時だけerrorが起きる場合どこがおかしいのでしょうか?
336
-
337
-
338
-
339
- ### 解決方法
340
-
341
- ”undefined method `+' for nil:NilClass”が発生してしまったた原因はnilオブジェクトに対して '+'を用いたからでした。
342
-
343
- そのため、要素.to_iとしてnilオブジェクトを0に変換することで解決しました!
344
-
345
- nilをintegerに直すと0になるらしいです!

4

解決しました

2020/03/04 03:53

投稿

koichiro516
koichiro516

スコア4

test CHANGED
File without changes
test CHANGED
@@ -333,3 +333,13 @@
333
333
 
334
334
 
335
335
  このようなバリデーションが機能しているのに正しい入力の時だけerrorが起きる場合どこがおかしいのでしょうか?
336
+
337
+
338
+
339
+ ### 解決方法
340
+
341
+ ”undefined method `+' for nil:NilClass”が発生してしまったた原因はnilオブジェクトに対して '+'を用いたからでした。
342
+
343
+ そのため、要素.to_iとしてnilオブジェクトを0に変換することで解決しました!
344
+
345
+ nilをintegerに直すと0になるらしいです!

3

質問の変更

2020/03/04 03:52

投稿

koichiro516
koichiro516

スコア4

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  しかし、逆にバリデーションに正しい値を入力すると以下のエラーが発生するようになりました。
14
14
 
15
- 今回のようバリデーション機能しるのに正しい入力の時だけerror起きる場合どこがおかしいでしょうか?
15
+ "+"問題あると書いるのですおかしな箇所が見当たらなため、ご教示いただけませんでしょうか?
16
16
 
17
17
 
18
18
 

2

ソースコードの追加

2020/03/03 13:43

投稿

koichiro516
koichiro516

スコア4

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  しかし、逆にバリデーションに正しい値を入力すると以下のエラーが発生するようになりました。
14
14
 
15
- 今回バリデーションが機能しているのに正しい入力の時だけerrorが起きる場合どこがおかしいのでしょうか?
15
+ 今回のようにバリデーションが機能しているのに正しい入力の時だけerrorが起きる場合どこがおかしいのでしょうか?
16
16
 
17
17
 
18
18
 
@@ -300,7 +300,27 @@
300
300
 
301
301
  ```
302
302
 
303
-
303
+ routes.rb
304
+
305
+ ```
306
+
307
+ Rails.application.routes.draw do
308
+
309
+ # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
310
+
311
+ get '/cards', to: 'cards#top'
312
+
313
+ post 'cards/check', to: 'cards#check'
314
+
315
+ get 'cards/check', to: 'cards#top'
316
+
317
+ get 'cards/result', to: 'cards#result'
318
+
319
+ get 'cards/error', to: 'cards#error'
320
+
321
+ end
322
+
323
+ ```
304
324
 
305
325
 
306
326
 

1

エラーメッセージの追加

2020/03/03 11:17

投稿

koichiro516
koichiro516

スコア4

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,29 @@
28
28
 
29
29
  undefined method `+' for nil:NilClass
30
30
 
31
-
31
+
32
+
33
+ validate :validate_card_set
34
+
35
+
36
+
37
+ def validate_card_set
38
+
39
+ if @card_set.blank?
40
+
41
+ errors[:base] << "5つのカード指定文字を半角スペース区切りで入力してください。(例:'S1 H3 D9 C13 S11')"
42
+
43
+ elsif @card_set.match(VALID_REGEX) == nil
44
+
45
+ errors[:base] << " #{ @card_set.split.index(@card_set.split.reject{|r|r.match(/\A[SHDC]([1-9]|1[0-3])\z/)}[0])+1}番目のカード指定文字が不正です。(#{@card_set.split.reject{|r|r.match(/\A[SHDC]([1-9]|1[0-3])\z/)}[0]}) 半角英字大文字のスート(S,H,D,C)と数字(1〜13)の組み合わせでカードを指定してください。"
46
+
47
+ elsif @card_set.split.size > @card_set.split.uniq.size
48
+
49
+ errors[:base] << "カードが重複しています。"
50
+
51
+ end
52
+
53
+ end
32
54
 
33
55
  ```
34
56