Re: Outputting a string from an array of objects

Frederick Cheung
Thu, 24 Feb 2011 18:01:06 -0000

On Feb 24, 5:07 pm, Peter D Bethke
<peter.bet...-ee4meeAH724@public.gmane.org> wrote:
> Hi All,
>
> Newbie here working with an existing Rails project. I''m trying to
create a method that will return a simple string of object values.
>
> I have an app that has companies that each are assigned to one or more
branches. Then I have a contact who is assigned to a company. I''ve
created an association with belongs_to for both the company and branch, and the
branch and company has their own class in AR.
>
> So
>
>  def get_company_branches
>
>    my_branches =  self.company.branches
>    my_list = my_branches.each { |x| puts x.branch_name }
>    return my_list
>  end
>
> For some reason this returns an object id (the raw ruby object id I think)
not the string i am looking for. Any suggestions?
>

puts just dumps things to stdout, so you definitely don''t want to be
using that here.
If you want to create an array based on the value of each object in a
collection then you should use collect (also available as map). It
creates a new array containing the result of evaluating the block for
each object of the original collection.

Fred