Hi Colin,

On Tue, Jul 12, 2011, Colin Law <[email protected]> wrote:

>On 12 July 2011 19:13, Leigh Daniels <[email protected]> wrote:
>> Hi Colin, Sayuj and Michael,
>>
>> This is a proprietary, in-house app in Rails 3.1rc4 for the U.S market
>and they hate date_select ("Date is a little hard to fill out. It is
>time-consuming to click on "January" and scroll to "June", etc. Any
>chance I could type in 6/3/11?").
>>
>>>If you want to allow the user to enter dates like this you will have
>>>to parse it yourself to make sure the month and day are as you want
>>>them.  If the site is for an international audience I suggest you use
>>>separate fields for the three components as otherwise you will have no
>>>end of trouble as most of the world uses day/month/year.  I don't
>>>understand what you mean by "it happens before the column is available
>>>in the controller".  The field will be passed as a string from the
>>>form to the controller and should appear in params exactly as entered
>>>by the user.  Note also that, since you have specified a date field in
>>>the database, what is stored there is not "2011-07-11" or any other
>>>string, but is the date itself.
>>
>> Colin, you are right that params[:start_date] is exactly as entered in
>the form.
>>
>> What I ended up doing was handling it in the controller with:
>> [JobsController]
>>  def create
>>    @job = Job.new(params[:job])
>>    @job.start_date = parse_free_date(params[:job][:start_date])
>
>Something like
>Date.strptime( params[:job][:start_date], "%Y/%m/%d" )   [ untested ]
>should do what you want.  Don't forget to catch the exception in the
>case of a parse error.
>

I refactored it into a lib/utilities.rb module so the testing would be easier. 
That seemed like the cleanest approach. And once I added the exception 
handling, all the other app tests are now passing and the client is happy!

Thanks.

*Leigh


-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to