I have an active record Times table with a date column and an hour column. The hours are unique but the dates can have many hours. How would I create a hash that mapped a date key to its hours? Something like: hours_per_date[''2/14/2012''] => [''6:00'', ''8:00'', ''11:00'', ''2:00''] Thanks -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hi!
Take a look at:
http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-group_by
and
http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-collect
I think they could help.
E.g:
hash = Time.all.collect { |t| [ t.date , t.hour ] }.group_by { |date,hour|
date.strftime("%-m/%-d/%Y") }
I hope it works.
Regards,
Everaldo
On Sat, Feb 11, 2012 at 11:40 PM, edward michaels
<micahfsu-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:
> I have an active record Times table with a date column and an hour
> column. The hours are unique but the dates can have many hours. How
> would I create a hash that mapped a date key to its hours? Something
> like:
>
> hours_per_date[''2/14/2012''] =>
[''6:00'', ''8:00'', ''11:00'',
''2:00'']
>
> Thanks
>
> --
> 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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To unsubscribe from this group, send email to
>
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>
--
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
On Sat, Feb 11, 2012 at 11:50 PM, Everaldo Gomes <everaldo.gomes-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:> Hi! > > Take a look at: > > http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-group_by > > and > > http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-collect > > I think they could help. > > E.g: > > hash = Time.all.collect { |t| [ t.date , t.hour ] }.group_by { > |date,hour| date.strftime("%-m/%-d/%Y") } > > I forgot that after using group_by you will have to discard the date fromthe hash values.> I hope it works. > > Regards, > Everaldo > > > On Sat, Feb 11, 2012 at 11:40 PM, edward michaels <micahfsu-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote: > >> I have an active record Times table with a date column and an hour >> column. The hours are unique but the dates can have many hours. How >> would I create a hash that mapped a date key to its hours? Something >> like: >> >> hours_per_date[''2/14/2012''] => [''6:00'', ''8:00'', ''11:00'', ''2:00''] >> >> Thanks >> >> -- >> 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> >> >-- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thanks, your idea did help.
if I do:
date = <some_date>
reduce = Time.where(:date => date)
hour_on_date = reduce.collect {|x| x.hour}
Now I just need to figure out how to make <some_date> a hash key which
triggers the hour_on_date array value.
On Feb 11, 8:50 pm, Everaldo Gomes
<everaldo.go...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Hi!
>
> Take a look at:
>
> http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-group_by
>
> and
>
> http://www.ruby-doc.org/core-1.9.3/Enumerable.html#method-i-collect
>
> I think they could help.
>
> E.g:
>
> hash = Time.all.collect { |t| [ t.date , t.hour ] }.group_by { |date,hour|
> date.strftime("%-m/%-d/%Y") }
>
> I hope it works.
>
> Regards,
> Everaldo
>
> On Sat, Feb 11, 2012 at 11:40 PM, edward michaels
<micah...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:
>
>
>
>
>
>
>
> > I have an active record Times table with a date column and an hour
> > column. The hours are unique but the dates can have many hours. How
> > would I create a hash that mapped a date key to its hours? Something
> > like:
>
> > hours_per_date[''2/14/2012''] =>
[''6:00'', ''8:00'', ''11:00'',
''2:00'']
>
> > Thanks
>
> > --
> > 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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> > To unsubscribe from this group, send email to
> >
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> > For more options, visit this group at
> >http://groups.google.com/group/rubyonrails-talk?hl=en.
--
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
On 13 February 2012 07:00, edward michaels <micahfsu-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Thanks, your idea did help. > > if I do: > > date = <some_date> > reduce = Time.where(:date => date)I think you might run into trouble using a class Time as this is already a ruby class. Colin -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.