[Rails 3.1.3 / ruby 1.9.2 ]

I am trying to manage localized dates and I don't actually understand
how it's managed w Rails 3.1 ... I thought there was no more issues w
I18n..

my locale is defined : I18n.locale => :fr
I am using a localized version of jQuery DatePicker , so it displays
selected dates in the text field like : 01/02/2012 (Feb first )
i.e. ( in generated html):
<input id="start_shooting_date" class="text
hasDatepicker" type="text" value="01/02/2012" name="project[start_shooting_date]">

in my Project model , date validations are OK, then I store the
updated project
@project.update_attributes(params[:project])

and I get stored in the DB : start_shooting_date: "2012-01-02
00:00:00" (Jan 2nd) rather than "2012-02-01 00:00:00" ( Feb
first )

I'll appreciated your feedback ...

I defined in environment.rb ( don't know if necessary.. for input .
but it seems to be for output, or is it redundant with defaults .yml
files ?)
# if locale french
Date::DATE_FORMATS.merge!( :default => "%d/%m/%Y" )

I also defined the I18n default format in the .yml files

fr:
date:
formats:
default: "%d/%m/%Y"
short: "%e %b"
long: "%e %B %Y"
full: "%A %d %B %Y"
time:
formats:
default: "%d %B %Y %H:%M:%S"
short: "%d %b %H:%M"
long: "%A %d %B %Y %H:%M"
am: 'am'
pm: 'pm'

en:
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"
full: "%A %B %d, %Y"
time:
formats:
default: "%a, %d %b %Y %H:%M:%S %z"
short: "%d %b %H:%M"
long: "%B %d, %Y %H:%M"
am: "am"
pm: "pm"

--
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@googlegroups.com.
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.

Search Discussions

  • Erwin at Jan 29, 2012 at 8:01 am
    [SOLVED]

    don't know if it's the best solution, but it worked...
    changed the date text_fields to text_field_tag, on output , set the
    value in the controller, with I18n and local format
    @start_shooting_date = I18n.l( @project[:start_shooting_date], :format => "%d/%m/%Y")
    then on input , set the attribute value from the form field in the
    controller, with I18n and local format
    @project = Project.new(params[:project]) # on create
    @project.attributes = params[:project] # on update
    @project[:start_shooting_date] = I18n.l(params[:start_shooting_date].to_date, :format => "%d/%m/%Y")
    if @project.save
    this way, the dates are correctly saved in the DB with the
    standard :db format but input/output in the form is in local format
    "dd/mm/yyyy" ( also defined like this in localized DatePicker

    --
    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@googlegroups.com.
    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.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedJan 28, '12 at 2:29p
activeJan 29, '12 at 8:01a
posts2
users1
websiterubyonrails.org
irc#RubyOnRails

1 user in discussion

Erwin: 2 posts

People

Translate

site design / logo © 2021 Grokbase