質問編集履歴
5
解決しました
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
解決しました
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
質問の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
しかし、逆にバリデーションに正しい値を入力すると以下のエラーが発生するようになりました。
|
14
14
|
|
15
|
-
|
15
|
+
"+"に問題があると書いてあるのですが、おかしな箇所が見当たらないため、ご教示いただけませんでしょうか?
|
16
16
|
|
17
17
|
|
18
18
|
|
2
ソースコードの追加
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
エラーメッセージの追加
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
|
|