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

时间:2010-07-12 19:54:07

标签: ruby-on-rails ruby helpers datetime-select

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

这是我的用法:

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

2 个答案:

答案 0 :(得分:4)

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

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 =年,2i =月等的字段

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

答案 1 :(得分:0)