我能夠用下面的代碼來完成此(如果窗體對象是 'DERP'):
<div class="timepicker">
<select class="hour form-control" name="derp[hour]">
<%= options_for_select((1..12).to_a, @derp.time ? @derp.time.strftime('%l').to_i : nil) %>
</select>
<span class="colon">:</span>
<select class="minute form-control" name="derp[minute]" >
<%= options_for_select(['00', '15', '30', '45'], @derp.time ? @derp.time.strftime('%M').to_i : nil) %>
</select>
<select class="meridiem form-control" name="derp[meridiem]" >
<%= options_for_select(['AM', 'PM'], @derp.time ? @derp.time.strftime('%p') : nil) %>
</select>
</div>
然後在DERP模型:
attr_accessor :hour, :minute, :meridiem
after_validation :parse_time
def parse_time
if hour and minute and meridiem
self.time = DateTime.parse("#{hour}:#{minute}#{meridiem}")
end
end