I would recommend the "inject" approach here. The reason why you are
getting nilClass and the error  "undefined method `+' for nil:NilClass" is
because in the block, you are trying to call the "+" method on the "sum"
object which is essentially nil. A way to avoid this error is by defining a
variable "sum" outside the block and setting it to 0.

On Thu, Nov 20, 2014 at 1:01 PM, Jeremy Axelrod <axelrod.jeremy / gmail.com>
wrote:

> The 'sum' variable needs to be initialized or else it takes the value of
> nil. So in the line 'sum += n', sum is nil. You can solve this by setting
> sum = 0 at the beginning of the method.
>
> On Wed, Nov 19, 2014 at 11:22 PM, Roelof Wobben <r.wobben / home.nl> wrote:
>
>>  Hello,
>>
>> I have a method that takes a unlimited number of integers and adds them
>> all together .
>>
>> So I did this :
>>
>> def sum (*numbers)
>>    numbers.each do |n|
>>       sum += n if n.is_a? Integer
>>    end
>> end
>>
>> but when I run it I see this error message :
>>
>> `block in sum': undefined method `+' for nil:NilClass (NoMethodError)
>> 	from `each'
>> 	from  `sum'
>> 	from  `
>>
>> '
>> why do I get a nilClass there. As far as I know this is a normal way to
>> add things up.
>>
>> Roelof
>>
>>
>>
>


-- 
Regards
Vineeth B S