目前我們正在處理用戶輸入的時間。Ruby on Rails以時間的字符串輸入並將其存儲爲整數
我們想把輸入作爲一個字符串輸入,對於用戶來說最自然的是 ex。 12:30,1:30。
請注意,時間不是基於特定的日期,而只是一天的時間。
但是在我們的模型中,我們希望將實際時間存儲爲整數(午夜後的秒數)。我們需要它作爲一個整數來執行某些約束檢查,而不是。這也將是我們容易然後再次輸出一個不錯的字符串
Time.at().utc.strftime("%I:%M%p")
我們正在運行到的問題是,我們要驗證通過使用正則表達式的用戶的字符串輸入午夜之後將其轉換爲秒前並存儲它。 但是,似乎在我們的模型validates_by_format之前,該字段已經被轉換爲某種整數類型。任何關於如何使用正則表達式來檢查用戶輸入的想法,然後再將其轉換並存儲爲整數(午夜後的秒數)?
下面是一些我們的代碼snipits的:
模型驗證
validates_format_of :start_time, :with => /\A(1[0-2]|[1-9]):[0-5][0-9]\z/, :message => "Must be valid time format"
在我們的餐桌
start_time :integer
end_time :integer
控制器功能
def create
@course_offering = current_term.course_offerings.new(params[:course_offering])
if @course_offering.save
#flash[:success] = "Offering created"
@conflicts = conflicts(@course_offering)
render :show
else
render :new
end
end
新的領域六EW
<% form_for @course_offering do |f| %>
<!-- other fields above this -->
<p>
<%= f.label :start_time %><br>
<%= f.text_field :start_time %>
</p>
<p>
<%= f.label :end_time %><br>
<%= f.text_field :end_time %>
</p>
<% end %>
請發佈您的new.html.erb或同等學歷。 – 2011-04-05 19:46:26