我是 ruby 和 ruby on rails 的初学者,我正在尝试使用 simple_form 创建一个复杂的表单。一切都在工作,但我想以一种非常具体的方式自定义“时间”字段。
当我使用:
<%= f.input :hour %>
它呈现两个选择字段,分别是填充了 00 到 23 选项的“小时”字段,以及填充了 00 到 59 选项的“分钟”字段。
但这不是我想要的。我想用一个带有自定义预填充选项的选择字段替换两个选择字段的时间使用,时间范围从上午 8 点到下午 22 点,以 15 分钟为增量,并且选项的文本也显示时间语法“8h00”、“8h15”、“8h30”、“8h45”、“9h00”、“18h00”、“18h15”、“18h30”、“18h45”等。“21h45”是最后一个可用的选项。
我已经设法使用以下选项对其进行了更多自定义:
<%= f.input :hour, :as => :time, :minute_step => 15 %>
虽然这解决了 15 分钟增量问题,但它仍然呈现两个选择字段。
这将是我想要为我呈现 simple_form 的 html 等价物:
<select name="hour">
<option value="08:00:00">08h00</option>
<option value="08:15:00">08h15</option>
<option value="08:30:00">08h30</option>
<option value="08:45:00">08h45</option>
...
<option value="21:30:00">21h30</option>
<option value="21:45:00">21h45</option>
</select>
我很确定这很容易使用从 8..21 循环然后再次循环使用 '00'、'15'、'30' 和 '45' 的集合来实现,然后以以下语法输出选项我想要(小时+“h”+分钟)。
我想创建一个自定义“日期”字段,因为在一个表单中会有很多日期字段(对于我正在创建的“约会”相关应用程序),但由于我是 ruby on rails 的初学者,我我真的迷失了实现这一点的最聪明的方法。我不确定是否应该在 simple_form 中实现自定义字段,是否应该使用辅助函数,或者什么。