Error - "`+': can't convert nil into String"

Why does the code below give me this error? What can I do to fix it?

/people3.rb:4:in +': can't convert nil into String (TypeError) om C:/Ruby192/people3.rb:4:into_s’

class Person
attr_accessor :fname, :lname, :age
def to_s
"hi " + @fname + ", " + @lname
end

end

Thanks
PR

On Sep 29, 12:03 am, Paul R. [email protected] wrote:

end

Either @fname or @lname are nil

You can’t concatenate nil to an string.

On Wed, Sep 29, 2010 at 5:03 AM, Paul R. [email protected]
wrote:

end

end

@fname is nil, and you are trying to call the + method on it. Hence the
error.
The recommended way would be something like:

class Person
attr_accessor :fname, :lname, :age
def to_s
“hi #{@fname}, #{@lname}”
end
end

irb(main):001:0> class Person
irb(main):002:1> attr_accessor :fname, :lname, :age
irb(main):003:1> def to_s
irb(main):004:2> “hi #{@fname}, #{@lname}”
irb(main):005:2> end
irb(main):006:1>
irb(main):007:1* end
=> nil
irb(main):008:0> Person.new.to_s
=> "hi , "
irb(main):009:0> p = Person.new
=> hi ,
irb(main):010:0> p.lname = “Smith”
=> “Smith”
irb(main):011:0> p.to_s
=> “hi , Smith”
irb(main):012:0> p.fname = “John”
=> “John”
irb(main):013:0> p.to_s
=> “hi John, Smith”

Jesus.

end

Thanks
PR

Try:

"hi " + @fname.to_s + “, " + @lname.to_s

Then nil would be an empty string.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs