datetime_select助手问题

我需要一些帮助,这是我的代码:

 2011 %> 

当我在我的应用程序中写这样的时候,我现在得到时间,我想现在得到时间在一个月和一天选择,我希望在小时和分钟选择不要得到现在我想要的小时和分钟在选择中看到“小时”和“分钟”字符串…

所以我写了这段代码:

  2011, :prompt => { :hour => "Hour", :minute => "minute" } %> 

在上面的代码中,小时和分钟是好的,但月和日不好(不是现在的时间)

您可以在提示中指定日期和月份:

 <%- t = Time.now %> <%= f.datetime_select :date, :start_year => 2011, :prompt => { :hour => "Hour", :minute => "minute", :month => t.strftime("%B"), :day => t.day} %> 

编辑 :谢谢你抓住乔伊。 我的解决方案没有将默认月份设置为当前月份 – 即使您要传入月份编号(这是数据库期望发布的月份编号)。 默认情况下会忽略提示,并且您似乎无法使用以下组合:default:prompt

我能提出的另一种选择是这样做:

 = f.datetime_select :date, :start_year => 2011, :prompt => { :hour => "hour", :minute => "minute"} 

然后使用javascript更改默认的月份和日期,如下所示:

 # somewhere in application.js $(function () { if ($('#new_comment').length > 0) { var model = 'comment' var atrib = 'date' /* update the day */ t3 = $('#' + model + '_' + atrib + '_3i'); var dt = new Date(); t3.val(dt.getDate()); /* update the month */ t2 = $('#' + model + '_' + atrib + '_2i'); t2.val(dt.getMonth() + 1); } }); 

假设您的模型是Comment ,列是date

这是一个有效的例子 。