Rails 2.3.14 から 3.2.2 にアップグレードしました。私の time_select は、アップグレード前に正常に機能していました。パラメータを割り当てた後、モデルの「start_time」列と「end_time」列は常に nil になります。
ここにビューがあります:
<%=label_tag("Start Time")%>
<div class="datetime-select">
<%=time_select(:calendar_event,:start_time,{:minute_step => 5},{:class=>'time'})%>
</div>
<%=label_tag("End Time")%>
<div class="datetime-select">
<%=time_select(:calendar_event,:end_time,{:minute_step => 5},{:class=>'time'})%>
</div>
コントローラーに戻るパラメーターは次のとおりです。
Parameters: {"authenticity_token"=>"aGF3mZbZvIDiv6ikH0M8Up2HoTqyXiAFqk+6Wsjbq6g=", "calendar_event"=>{"start_date"=>"Fri Aug 31 10:30:00 +1200 2012", "calendar_resource_id"=>"", "start_time(1i)"=>"2012", "organisation_id"=>"", "start_time(2i)"=>"8", "start_time(3i)"=>"31", "booking_type"=>"WORKER", "start_time(4i)"=>"10", "end_time(1i)"=>"2012", "id"=>"", "start_time(5i)"=>"30", "end_time(2i)"=>"8", "user_id"=>"31", "end_time(3i)"=>"31", "end_time(4i)"=>"11", "description"=>"ssss", "end_time(5i)"=>"00", "end_date"=>"Fri Aug 31 11:00:00 +1200 2012"}}
モデルに属性を割り当てるコードは次のとおりです。
@calendar_event=CalendarEvent.new(params[:calendar_event])
logger.info(@calendar_event.inspect)
ログ ステートメントからの CalendarEvent モデルの内容は次のとおりです。
#<CalendarEvent id: nil, description: "ssss", booking_type: "WORKER", start: nil, end: nil, start_date: "2012-08-31", end_date: "2012-08-31", start_time: nil, end_time: nil, allDay: false, calendar_resource_id: nil, organisation_id: nil, user_id: 31, group_session_id: nil, created_at: nil, updated_at: nil>
start_time と end_time は常に nil です。
これらは、schema.rb で「時間」列として定義されています。