Calendar date Select et "invalid date"

Bonjour,

Je suis en train de tester le gem calendar_date_select et je rencontre
un problème de date invalide. Ce problème apparait aléatoirement et je
n’arrive pas à le reproduire de façon systématique (à part avec
cucumber)

Le code sur mon form
<% CalendarDateSelect.format=(:euro_24hr) %><%=
calendar_date_select_includes “silver”, :locale => ‘fr’ %>

<%= calendar_date_select_tag “start_at”, display_date_long_date
(@event.start_at), :popup => :force, :time => false %>

La ligne sur laquelle apparait l’erreur
@event.start_at = params[:start_at].to_datetime.change(:hour =>
params[:start_time][:"(4i)"].to_i , :minute => params[:start_time]
[:"(5i)"].to_i)

Mon erreur de date invalide génère la trace suivante:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/date.rb:1519:in civil' /Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/ active_support/core_ext/string/conversions.rb:23:into_datetime’
app/controllers/events_controller.rb:28:in create' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/base.rb:1166:insend’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/base.rb:1166:in perform_action_without_filters' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/filters.rb:579:incall_filters’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/filters.rb:572:in perform_action_without_benchmark' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/benchmarking.rb:68:inperform_action_without_rescue’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/benchmark.rb:293:in measure' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/benchmarking.rb:68:inperform_action_without_rescue’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/rescue.rb:201:in perform_action_without_caching' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/caching/sql_cache.rb:13:inperform_action’
/Users/nicolas/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/
connection_adapters/abstract/query_cache.rb:33:in cache' /Users/nicolas/.gem/ruby/1.8/gems/activerecord-2.1.2/lib/active_record/ query_cache.rb:8:incache’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/caching/sql_cache.rb:12:in perform_action' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/base.rb:529:insend’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/base.rb:529:in process_without_filters' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/filters.rb:568:inprocess_without_session_management_support’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/session_management.rb:130:in process' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/base.rb:389:inprocess’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/dispatcher.rb:149:in handle_request' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/dispatcher.rb:107:indispatch’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/dispatcher.rb:104:in synchronize' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/dispatcher.rb:104:indispatch’
/Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/
action_controller/dispatcher.rb:120:in dispatch_cgi' /Users/nicolas/.gem/ruby/1.8/gems/actionpack-2.1.2/lib/ action_controller/dispatcher.rb:35:indispatch’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:76:in process' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:insynchronize’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in process' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:inprocess_client’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in each' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:inprocess_client’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:ininitialize’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in new' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:inrun’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in initialize' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:innew’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:282:inrun’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in each' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:inrun’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:inrun’
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/
active_support/dependencies.rb:503:in load' /Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/ active_support/dependencies.rb:503:inload’
/Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/
active_support/dependencies.rb:355:in new_constants_in' /Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/ active_support/dependencies.rb:503:inload’
/Users/nicolas/.gem/ruby/1.8/gems/rails-2.1.2/lib/commands/servers/
mongrel.rb:64
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:inrequire’
/Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/
active_support/dependencies.rb:510:in require' /Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/ active_support/dependencies.rb:355:innew_constants_in’
/Users/nicolas/.gem/ruby/1.8/gems/activesupport-2.1.2/lib/
active_support/dependencies.rb:510:in require' /Users/nicolas/.gem/ruby/1.8/gems/rails-2.1.2/lib/commands/server.rb: 39 /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:ingem_original_require’
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in require' script/server:3 -e:1:inload’
-e:1

Request

Parameters:

{“commit”=>" “,
“end_at”=>{”(1i)"=>“2009”,
“(2i)”=>“11”,
“(3i)”=>“14”,
“(4i)”=>“09”,
“(5i)”=>“00”},
“authenticity_token”=>“9ae1fac55c756949d8d50c97fbfcb73ce34dea4e”,
“start_at”=>“30 Décembre 2009”,
“event”=>{“scope”=>“3”,
“title”=>"",
“description”=>""},
“building_id”=>“1-7-convention”,
“start_time”=>{"(1i)"=>“2009”,
“(2i)”=>“11”,
“(3i)”=>“14”,
“(4i)”=>“09”,
“(5i)”=>“00”}}

Si vous avez une idée?

Merci

J’ai abandonné pour l’instant l’utilisation de calendar_date_select.
Je le fait à la ‘standard’ avec un date_select.