This functionality is included in some ruby gems (Utility Belt seems to be the most popular), but I'm more of a "roll-your-own" kinda guy. Not to mention that the gem is a little overkill for printing out command history.
Here's what I came up with:
This functionality is included in some ruby gems (Utility Belt seems to be the most popular), but I'm more of a "roll-your-own" kinda guy. Not to mention that the gem is a little overkill for printing out command history.
Here's what I came up with:
I actually googled this and found a workable but ugly solution:
## view code
<%= date_select('range', 'start_date', :order => [:month, :day, :year])%>
## controller code
@start_date = Date.civil(params[:range][:"start_date(1i)"].to_i,params[:range][:"start_date(2i)"].to_i,params[:range][:"start_date(3i)"].to_i)
I needed to include the hour and minute as well, and didn't want to cram more arguments into the Date.civil call (actually Time.zone.local), so I cleaned up the code a bit.
Hoping to leave the internet a little better for the next guy, I thought I'd post the code.
## view code
<%= datetime_select('range_start', 'date', :order => [:month, :day, :year, :hour,:minute]) %>
# controller code
@start_date = Time.zone.local(*params[:range_start].sort.map(&:last).map(&:to_i))
I use database records for file names when generating reports, but some of those have invalid characters. The attachment_fu plugin has the sanitize_filename method, but I wasn't so happy with the output, e.g.,
>> sanitize_filename("foo & bar")
=> "foo___bar"
>> sanitize_filename("14th @bar")
=> "14th__bar"
>> sanitize_for_filename(" foo & bar ")
=> "foo_and_bar"
>> sanitize_for_filename("14th @bar")
=> "14th_at_bar"