0
내가 어떤 모델에 유효성 검증 메소드를 호출 할 때마다, 나는 다음과 같은 오류가 발생합니다 :유효성 검증 오류 - 정의되지 않은 메소드`zero? '
NoMethodError: undefined method `zero?' for nil:NilClass
이 나타납니다 내 사용자 정의 배열 클래스에서 기능 합을 제거하면 오류가 멀리 갈 것입니다 :
class Array
def sum
inject(nil) { |sum,x| sum ? sum+x : x }
end
..
왜 이런 일이 발생합니까? 어떻게이 문제를 해결하고 여전히 합계 기능을 유지할 수 있습니까? (그것이 다른 컬렉션에 사용할 수 있도록 실제로 Enumerable에서 모듈)
이 기능 (가중치가 적용된 임의의 배열) (http : // dzone)으로 구현했습니다. com/snippets/weighted-random-array – Aljaz
레일이 레일스를 정의하기 때문에 합계를 정의 할 필요가 없습니다. 아마도 링크 된 코드의 작성자는 레일의 존재를 가정하고 싶지 않았을 것입니다 (또는 레일의 합계보다 먼저 나타납니다) –