如何修改Rails datetime_select帮助器的输入类型?

我在我的一个表单中使用Rails helper datetime_select 。 我目前要求将dayyearhourminute的下拉列表更改为带validation的文本框。 有没有办法可以指定我想要这些字段的文本框? 或者可能是一个不同的助手,可以满足我的需求?

这是我的用法:

 datetime_select(:campaign, :start_date, :order => [:day, :month, :year, :hour, :minute]) 

如何滚动你自己的简单助手,比如

 def datetime_text_fields(object_name, method) html = text_field_tag("#{object_name}[#{method}(3i)]", Date.today.day.to_s, :length => 2) html << select_month(Date.today, :field_name => "#{object_name}[#{method}(2i)]") html << text_field_tag("#{object_name}[#{method}(1i)]", Date.today.year.to_s, :length => 4) html << " " html << text_field_tag("#{object_name}[#{method}(4i)]", Time.now.hour.to_s, :length => 2) html << ":" html << text_field_tag("#{object_name}[#{method}(5i)]", Time.now.min.to_s, :length => 2) end 

随意添加更多格式化的东西/分隔符等,但它基本上返回到正确的字段名称,以便将rails标识为DateTime。 Rails期望命名为date(1i) ,1i = year,2i = month等的字段。

老实说,我没有测试它或任何东西,但控制台中的输出看起来非常有说服力;)

为什么不自己滚动,只需按照日期选择器帮助程序的相同方式命名输入字段,并在滚动自定义前端时获得所有后端优势。 或者使用:order让你的日期选择器给出月份选择,并使用一些javascript魔法用于其他输入。

您可以使用jquery datepicker并使用与rails datepicker相同的命名约定填充隐藏字段。