我在我的一个表单中使用 Rails 帮助器 datetime_select
。我目前需要将日
、年
、小时
和分钟
的下拉列表更改为文本框验证。有没有办法可以指定我想要这些字段的文本框?或者可能有一个不同的 helper 可以满足我的需要?
这是我的用法:
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 识别为日期时间。 Rails 需要命名为 date(1i)
、1i = 年、2i = 月等的字段。
老实说,我没有测试它或任何东西,但控制台中的输出看起来非常有说服力;)
关于ruby-on-rails - 如何修改 Rails datetime_select 帮助器的输入类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231772/