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