NoMethodError:使用分区可枚举时的未定义方法

时间:2015-04-13 01:10:58

标签: ruby enums nomethoderror partition

我读到了Ruby Enumerable分区,想要重构我的信用卡验证器项目包括它。

class CreditCheck

  attr_reader :number, :flipped, :split

  def initialize(number)
@number = number.split("").map { |s| s.to_i}
end

  def flip_number
@flipped = @number.reverse
  end

  def check_validity
@split = @flipped.partition.with_index { |x , index|
  index.even?}
@split
  end

end

返回:

NoMethodError: undefined method `partition' for nil:NilClass

有关如何解决此问题的任何帮助?我确定我只是错过了一个小细节。

1 个答案:

答案 0 :(得分:1)

在check_validity方法中,替换方法flip_number

的@flipped
 @split = flip_number.partition.with_index { |x , index| index.even?}