All of my stat tables house data that is compiled weekly. I know how to
add a date range selector to the table but I’m not sure how I can
restrict the selector to show specific weeks only unless I use a
symbolic type of selector.
For instance:
Suppose there are 13 weeks in a season. Data is added each of the 13
weeks. A person wants to view just the data from week 1. In my table
week 1 would have been between the date ranges of say Aug 31 - Sep 6.
Should I just use a symbolic selector instead with options for say:
Week 1
Week 2
Week 3…
And then provide a case for when that week is selected it is sent over
to a defined named_scope for that particular week?
I’m just thinking about possibilities and what might be a better way of
doing things.
Thanks.
I was playing around with distinct and tried the following:
<%= collection_select(:rushing_offense, :compiled_on,
RushingOffense.find(:all, :select => ‘DISTINCT compiled_on’), :id,
:compiled_on, {:prompt => true}) %>
With my current week’s data for instance there are 120 timestamps.
Using the above, it pulled 2 options only (which is not bad but also not
good). The difference was within a second apart:
Please Select–
2009-06-28 12:08:40 UTC
2009-06-28 12:08:41 UTC
Probably because it took a second to load the batch. I would rather
work with something like this but tailor it some more…
I’ll see what I can work out but if anyone has better ideas please let
me know.
thanks.
One thing - if you’re only ever going to be interested in the date,
I’d recommend changing the compiled_on field to a date, rather than a
datetime. That will eliminate the “off by 1 second” thing you’re
seeing.
–Matt J.
On Jun 28, 9:02 am, “Älphä Blüë” [email protected]
Matt, good call there mate.
I created some constants for each week start and end:
WEEK_ONE_START = “2009-06-21”
WEEK_ONE_END = “2009-06-27”
And then defined that in a per search scope:
named_scope :compiled_week_one, lambda { { :conditions => ['compiled_on
? and compiled_on < ?’, WEEK_TWO_START, WEEK_TWO_END] } }
And can do that for each of the weeks of the season (13 in total). I
also have a default scope using Time.now.beginning_of_week and
Time.now_end_of_week for current records but the form search allows the
new scopes and all works well.
Many thanks.
Älphä Blüë wrote:
And then defined that in a per search scope:
named_scope :compiled_week_one, lambda { { :conditions => ['compiled_on
? and compiled_on < ?’, WEEK_TWO_START, WEEK_TWO_END] } }
Actually reads WEEK_ONE_START and WEEK_ONE_END…