I have a form where the user will select a date range, and then a report will be presented based on that date range.
The relevant bit of my Rails form looks like this…
<div class="field">
<b>Start Date</b><br />
<%= date_select :startDate, options = {:order => [:day, :month, :year]} %>
</div>
<div class="field">
<b>End Date</b><br />
<%= date_select :endDate, options = {:order => [:day, :month, :year]} %>
</div>
However, I’m having trouble figuring out how to access the resulting dates in the controller. I’ve put the following diagnostics in the controller,
puts params[:startDate]
puts params[:endDate]
puts Date.today
…and this shows,
orderdaymonthyear(1i)2011orderdaymonthyear(2i)3orderdaymonthyear(3i)21
orderdaymonthyear(1i)2011orderdaymonthyear(2i)10orderdaymonthyear(3i)21
2011-10-21
My search, is defined at follows,
SalesActivity.find(:all, :conditions => {:created_at => params[:startDate]..params[:endDate]})
…and this gives the exception, ‘bad value for range’.
Pointers to how to pass and use a Date range would be appreciated.
Thanks to the helpful suggested answers, I learned that the area I needed to dig into was multiparameter attributes. However, the answer referenced by Julik seems more complex than what I need.
However, I did find this,
http://snippets.dzone.com/posts/show/4630
Which gave me what I was looking for so, my [now working] code looks like this,
Thanks again for the help.