2010-06-05 39 views
2

我正在从日期数据进来的API提取数据为“2008-02-11 00:00:00”Rails-无法为表单date_select设置值

我想数据在date_select中作为一个值进入我的表单,所以我可以在将其添加到数据库之前正确查看它。

的观点看起来像

<%= f.label :start_date %><br /> 
<%= f.date_select :start_date, :value => " #{@stdate[idx]} " %> 

的对象实际上是日期的数组,因为我在做这个动作数次做这就是为什么[IDX]有;充当索引。

<%= @stdate [idx]%>结束输出“2008-02-11 00:00:00”,但date_select助手的字段仅输出当前日期“2010”“June”“5”在这些下拉日期中选择字段...

是否需要单独设置年,月和日期的值?我有Chronic,并试图在使用它作为date_select的值之前解析对象,而且也没有效果。

任何想法?

回答

13

您不会使用:value选项,而是使用:default选项并将DateTime对象传递给它。

+1

这是正确的答案 – dgilperez 2013-02-27 02:18:14

0

date_select没有:value选项。在您的示例中,下拉列表的值将从您在启动表单构建器f时传入的任何对象的start_date属性中获得。

在这个对象上,你可以简单地在渲染之前设置start_date属性,即使你实际上并没有保存它。

还有一个select_date帮助程序,它是没有链接到对象的变体,只允许您传递一个值。但是这需要更多的手工劳动,因为它不适用update_attributes