Wondering what would be the best way to implement this. I need to store that an item occurs on a specific day of the week or everyday. Say in the model we have a title and a day of week. I was thinking doing a 0-7 in my model for the item representing the day of the week with zero being everyday. For a selection criteria say I wanted to search for every title starting on Monday, Wendsday and Friday where each day on the selection screen would be checkbox representing the days Monday - Sunday and Everyday (clicking everyday would remove the checkboxes should someone select everyday and a day of the week) What would the active record query look like to dynamically pass in the days of the week selected should say mon, wed and fri get selected given that what they selected is past to the controller in a "days_of_week" variable. I''m not totally tied to the idea of storing the day as a number so if anyone has any better implementations of this I''m listening. Cheers, S Gallo -- 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 23 February 2010 21:33, sgallo1 <sgallo1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Wondering what would be the best way to implement this. > > I need to store that an item occurs on a specific day of the week or > everyday. > Say in the model we have a title and a day of week. > I was thinking doing a 0-7 in my model for the item representing the > day of the week with zero being everyday.You could store an seven-figure number and bitwise it to work out whether a given day was on or off. Or you could have a separate table for "days" and have a many_to_many association with it, to get a "days" collection in your model. Or you could use a recurrence rule, if you need more flexibility (something like RiCal) Any preference? Michael PS Using "zero" for "all" would not be very intuitive, as 0 is normally used to indicate Sunday. -- 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 Tue, Feb 23, 2010 at 4:33 PM, sgallo1 <sgallo1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Wondering what would be the best way to implement this. > > I need to store that an item occurs on a specific day of the week or > everyday. > Say in the model we have a title and a day of week. > I was thinking doing a 0-7 in my model for the item representing the > day of the week with zero being everyday. > > For a selection criteria say I wanted to search for every title > starting on Monday, Wendsday and Friday where each day on the > selection screen would be checkbox representing the days Monday - > Sunday and Everyday (clicking everyday would remove the checkboxes > should someone select everyday and a day of the week) > > What would the active record query look like to dynamically pass in > the days of the week selected should say mon, wed and fri get selected > given that what they selected is past to the controller in a > "days_of_week" variable. > > I''m not totally tied to the idea of storing the day as a number so if > anyone has any better implementations of this I''m listening.Something like # get weekdays_selected to be an array of the numbers corresponding to the checked boxes plus 0 # For example if you wanted to find events on Mondays and Wednesdays, weekdays_selected should be: # [0, 2, 3] Items.all(:conditions => ["weekday IN ?", weekdays_selected]) or if you''re using Rails3 Items.where("weekday IN ?", weekdays_selected) If it were me I might think about tweaking this a bit and use 7 instead of 0 for any day, since Ruby''s Date and Time use 0 for Sunday through 6 for Saturday. Caveat, none of the above code has been tested, and I''ve only had two sips of coffee this morning. -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Twitter: http://twitter.com/RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale -- 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 all. I will replace 7 with everyday and 0 for sunday. And Rick thanks for the active record code. That''s exactly what I was looking for. Cheers, S Gallo On Wed, Feb 24, 2010 at 8:14 AM, Rick DeNatale <rick.denatale-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Tue, Feb 23, 2010 at 4:33 PM, sgallo1 <sgallo1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> Wondering what would be the best way to implement this. >> >> I need to store that an item occurs on a specific day of the week or >> everyday. >> Say in the model we have a title and a day of week. >> I was thinking doing a 0-7 in my model for the item representing the >> day of the week with zero being everyday. >> >> For a selection criteria say I wanted to search for every title >> starting on Monday, Wendsday and Friday where each day on the >> selection screen would be checkbox representing the days Monday - >> Sunday and Everyday (clicking everyday would remove the checkboxes >> should someone select everyday and a day of the week) >> >> What would the active record query look like to dynamically pass in >> the days of the week selected should say mon, wed and fri get selected >> given that what they selected is past to the controller in a >> "days_of_week" variable. >> >> I''m not totally tied to the idea of storing the day as a number so if >> anyone has any better implementations of this I''m listening. > > Something like > > # get weekdays_selected to be an array of the numbers corresponding to > the checked boxes plus 0 > > # For example if you wanted to find events on Mondays and Wednesdays, > weekdays_selected should be: > # [0, 2, 3] > > Items.all(:conditions => ["weekday IN ?", weekdays_selected]) > > or if you''re using Rails3 > > Items.where("weekday IN ?", weekdays_selected) > > If it were me I might think about tweaking this a bit and use 7 > instead of 0 for any day, since Ruby''s Date and Time use 0 for Sunday > through 6 for Saturday. > > Caveat, none of the above code has been tested, and I''ve only had two > sips of coffee this morning. > > -- > Rick DeNatale > > Blog: http://talklikeaduck.denhaven2.com/ > Twitter: http://twitter.com/RickDeNatale > WWR: http://www.workingwithrails.com/person/9021-rick-denatale > LinkedIn: http://www.linkedin.com/in/rickdenatale > > -- > 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. > >-- Stephen Gallo sgallo1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org 843.424.1933 -- 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.