Rails time_select with offset?

时间:2014-03-18 23:38:22

标签: ruby-on-rails user-interface time-select

我正在尝试在rails3应用程序中创建一个time_select,它只允许选择“15”和“45”。

我已经在使用:minute_step => 30,但那只给我0,30。我想我正在寻找一个选项:minute_offset => 15,似乎不存在...

1 个答案:

答案 0 :(得分:0)

创建我自己的FormBuilder对于我想添加的一个简单扩展来说太麻烦了。

结果是min_select函数已经有一个默认为0的start(offset)参数。只需传递一个额外的参数就可以解决问题。 (minute_offset是这里的新选项)

ActionView::Helpers::DateTimeSelector.class_eval do
  def select_minute
    if @options[:use_hidden] || @options[:discard_minute]
      build_hidden(:minute, min)
    else
      build_options_and_select(:minute, min, :step => @options[:minute_step], :start => (@options[:minute_offset] || 0) % (@options[:minute_step] || 60))
    end
  end
end

我正在考虑如何更干净地做这个,而不是这个全球猴子补丁