有沒有人知道只有一個選擇框的Ruby on Rails time_select插件?因此,選擇框中有「9:00 AM」,「9:15 AM」等條目。Ruby on Rails的time_select插件?
我見過一些插件,但沒有像這樣。
謝謝!
有沒有人知道只有一個選擇框的Ruby on Rails time_select插件?因此,選擇框中有「9:00 AM」,「9:15 AM」等條目。Ruby on Rails的time_select插件?
我見過一些插件,但沒有像這樣。
謝謝!
所以你想在一個選擇列表中以15分鐘爲單位增加每個可能的時間?我真的推薦使用標準的time_select插件來做。
編輯添加我不知道這樣的事情,我不認爲它會在那裏,你可能必須自己做。
我使用time_select 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
編輯:找到紅寶石文件的來源!在這裏找到它:http://brunomiranda.com/past/2007/6/2/displaying_12_hour_style_time_select/
這是一個非常基本的幫手,把它放在你的應用程序幫手。你將不得不使用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
你看過12_hour_time?這在過去對我有用。
如果您正在使用Rails 3來完成此任務,則需要將html_options
分配給空字符串(html_options = ""
)。 build_select
要求選擇選項爲html。否則,您將收到can't convert Array into String
。
查看build_select文檔。
只是一個友好的更新。請享用。
Rails的ActionView::Helpers::DateHelper類有這個
<%= f.time_select :attribute_name, :minute_step => 15, :ampm => true %>
是的,我已經看到,還有一個解決方案,但它不能在一個選擇做這項工作。我應該在一個小時左右完成編碼解決方案。我會很快發佈 – Tony 2009-04-20 22:28:07
我修改了上面的答案,以使用Rails 3,並有12上午,而不是0上午。請參閱:https://gist.github.com/1340125。 – 2011-11-04 18:44:54