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
-~----------~----~----~----~------~----~------~--~---