有没有人知道任何只有一个选择框的Ruby on Rails time_select插件?所以选择框有“9:00 AM”,“9:15 AM”等条目?
我见过一些插件,但没有这样的插件。
谢谢!
答案 0 :(得分:9)
我在我的应用程序中使用time_selects ALOT,并通过两次微调来解决时间选择问题。
第一个是minute_step:
f.time_select :start_of_shift, :minute_step => 15
这会将令人发指的分钟选择框切成一个非常可管理的大小(选择你自己的!)
另外,我找到了一个ruby模块,我将我的初始化文件夹放在我所有基于时间的应用程序中:
module ActionView
module Helpers
class DateTimeSelector
def select_hour_with_twelve_hour_time
datetime = @datetime
options = @options
return select_hour_without_twelve_hour_time(datetime, options) unless options[:twelve_hour].eql? true
if options[:use_hidden]
build_hidden(:hour, hour)
else
val = datetime ? (datetime.kind_of?(Fixnum) ? datetime : datetime.hour) : ''
hour_options = []
0.upto(23) do |hr|
ampm = hr <= 11 ? ' AM' : ' PM'
ampm_hour = hr == 12 ? 12 : (hr / 12 == 1 ? hr % 12 : hr)
hour_options << ((val == hr) ?
%(<option value="#{hr}" selected="selected">#{ampm_hour}#{ampm}</option>\n) :
%(<option value="#{hr}">#{ampm_hour}#{ampm}</option>\n)
)
end
build_select(:hour, hour_options)
end
end
alias_method_chain :select_hour, :twelve_hour_time
end
end
end
我希望我能记得我发现它的位置所以我可以归功于它,但简而言之,它允许我指定12小时的时间将我的time_select字段分解为两个易于选择的易于管理的选项。
f.time_select :start_of_shift, :twelve_hour => true, :minute_step => 15
编辑:找到ruby文件的来源!在此处找到它:http://brunomiranda.com/past/2007/6/2/displaying_12_hour_style_time_select/
答案 1 :(得分:7)
这是一个非常基本的帮手,把它放在你的应用程序助手中。您必须使用Time.parse(params [:your_field])转换控制器/模型中的时间。这可能无法解决您的问题,但它至少应该指向正确的方向。
def time_select_tag(name)
times = []
(00..23).each do |i|
(0..3).each { |inc| times << Time.parse("#{i}:#{inc * 15}") }
end
return select_tag name, options_for_select(times.map{|t| t.strftime('%I:%M%p')})
end
答案 2 :(得分:2)
你看过12_hour_time了吗?这对我来说过去很有用。
答案 3 :(得分:2)
Rails ActionView::Helpers::DateHelper类有一个解决方案
<%= f.time_select :attribute_name, :minute_step => 15, :ampm => true %>
答案 4 :(得分:1)
所以你希望在一个选择列表中以15分钟为增量的每个可能时间?我真的建议使用标准的time_select插件。
编辑添加我不知道有什么类似的东西,我不认为它会在那里,你可能不得不自己制作。
答案 5 :(得分:1)
如果您希望使用Rails 3执行此操作,则需要将html_options
分配给空字符串(html_options = ""
)。 build_select
要求select选项为html。否则您将收到can't convert Array into String
。
请参阅build_select文档。
只是一个友好的更新。享受。