On Wed, Dec 17, 2008 at 9:08 AM, michael_teter <[email protected]> wrote:
>
> Howdy.  I imagine this is an elementary Ruby question, but I'd love to
> learn the right Ruby idiom for this.
>
> I'd like to take the results of an ActiveRecord.find() and turn them
> into an array of arrays [[item1_col1,item1_col2], [item2_col1,
> item2_col2]].
>
> Here's my code sample of the brute force way I'm doing it, but I bet
> it can be reduced fewer lines of code...
>
>    @crit_sections = Hash.new
>    x = Reference.find(
>      :all,
>      :select => "refid,name",
>      :conditions => "ref_type = 'Division'",
>      :order => "name")
>

You can use the collect method

@crit_sections[:division] = Reference.find(:all,
                                                            :select =>
"refid,name",

:conditions => "ref_type = 'Division'",
                                                            :order =>
"name").collect { |r| [ r.refid, r.name ] }

I took the liberty of using a symbol for your hash key instead of a string.
Read up on symbols - in simplest terms, they are like strings without all
the string functionality, which we usually don't need anyway for hash keys.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to