I'm very new to ruby, coming from a long j2ee background. I hope these
questions make sense and aren't covered elsewhere (i looked, really.)

I'm creating a project in rails and i have several model objects that I
want to override the to_s method on.  It looks like using a "mixin" or
module is the way to go since i don't want to write a new to_s for every
model class that i have to update every time i make a change to the db.

In java my model classes would use reflection to discover all the
instance variables and concatenate them together (the apache commons
ToStringBuilder.)

I went to accomplish that for my ruby model class but honestly could not
figure out how.  I was first stumped trying to override the to_s in the
first place by putting

Class Member
  def to_s
    "Member[" + @first_name + ", " + @last_name + "]"
  end

And that fails out on me (@first_name is nil!)

Then i switched it to
  def to_s
    "Member[" + first_name + ", " + last_name + "]"
  end

And that worked.  I don't get it, i thought instance variables always
started with the @?

So i guess my questions are, why no @ before my instance variables, and
how would i write a method that gets all instance variables (and then
concatenates them, although i can figure that out. hopefully ;)

Thanks

-- 
Posted via http://www.ruby-forum.com/.