0
를 강요 할 수없는
나는 다음과 같은 기능을 가지고 : 무기 호는 Fixnum이라는
def valid_credit_card?(number)
digits = number.scan(/./).map(&:to_i)
check = digits.pop
sum = digits.reverse.each_slice(2).map do |x, y|
[(x * 2).divmod(10), y]
end.flatten.inject(:+)
(10 - sum % 10) == check
end
그러나 어떤 이유로 나는 다음과 같은 오류 메시지가 계속
:nil can't be coerced into Fixnum
그리고 몇 가지 이유로 그럴 수 없어 오류가 왜 던져지고 있는지 파악하십시오. 왜 이런 일이 일어날 지 모릅니다.
아! 어떻게 해결할 수 있을까요? – dennismonsewicz
숫자가 16이 아닌 경우 false를 반환하는 문제는 모든 신용 카드가 Luhn 알고리즘을 통과하지 못한다는 것을 의미합니다 (위의 함수가 수행해야하는 것임) – dennismonsewicz
https : // github.com/joeljunstrom/ruby_luhn – dennismonsewicz