2

我在datetime_select我的一种形式中使用 Rails 助手。我目前需要更改 、 、 和 的下拉列表,day并使其成为带有验证的文本框。有没有办法可以指定我想要这些字段的文本框?或者可能是一个不同的帮手来做我需要的?yearhourminute

这是我的用法:

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

2 回答 2

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

随意添加更多格式化内容/分隔符等,但它基本上会返回正确的字段名称,以便将轨道标识为 DateTime。Rails 需要命名为date(1i)、1i = 年、2i = 月等的字段。

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

于 2010-07-20T11:15:56.093 回答
0

为什么不自己滚动,只需以与日期选择器助手相同的方式命名输入字段,您就可以在滚动自定义前端时获得所有后端优势。或者使用:order让您的日期选择器选择月份,并使用一些 javascript 魔术来输入其他输入。

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

于 2010-07-23T18:31:10.067 回答