如何在rails表格中处理ruby中的日期对象?

Ton*_*ony 3 ruby forms select ruby-on-rails date

我正在使用rails帮助程序创建3个选择列表,以便让用户选择日期.如果我为帮助者分配一个名称,它会将所有3个选择列表设置为具有该名称,然后只有最后一个列表通过(它会覆盖前一个).我需要知道的是:采用一组3个选择列表(日,月,年)的最佳方法是什么,并将它们组合起来创建日期对象并将其保存到我的数据库中?

这是我的日期字段:

<%= select_date Date.today, { :order => [:month, :day, :year], :start_year => Date.today.year, :end_year => Date.today.year + 3 } %>
Run Code Online (Sandbox Code Playgroud)

这是传递给我的控制器的参数(从我的开发日志中吐出)

Parameters: {"date"=>{"month"=>"4", "day"=>"9", "year"=>"2009"}, 
"action"=>"create", "controller"=>"shows", 
"show"=>{"headline"=>"for example, \"Parking lot is next to the bookstore on Main Street\"", "venue_id"=>{"venue_id"=>""}, "cents"=>"00", "dollars"=>"00"}, 
"user_id"=>"3", "load_in"=>"-2", "show_time"=>"-2", "query"=>"Type venue name & location here...", "doors"=>"-2"}
Run Code Online (Sandbox Code Playgroud)

如您所见,日期已过.理想情况下,我希望将日期作为可接受的日期对象传递给我的控制器.此外,我希望它传递"show"哈希,因为它是显示数据.通过一些简单的轨道修改可以实现吗?或者我必须写一些JS(在我看来,这个解决方案有点脏)?

Sar*_*Mei 6

我想你想要date_select而不是select_date,因为你想要它与你的show对象中的特定字段相关联.

  date_select("show", "date", :default => Date.today, 
    :order => [:month, :day, :year], :start_year => Date.today.year, 
    :end_year => Date.today.year + 3)
Run Code Online (Sandbox Code Playgroud)