032 文本框中的时间格式

Time in Text Field

Although Rails does allow you to edit time attributes with text fields, it's not very flexible. In this episode you will learn how to use a virtual attribute to format the time to your liking.
 
虽然Rails允许你通过文本框来编辑时间属性,但是灵活性不是很高。这一节我们来学习如何用虚拟属性将时间输入变成你喜欢的格式。
 
一般情况下我们使用datetime_select来选择时间:
<%= f.datetime_select :time%>
现在我们用<%= f.text_field :virture_time%>
在模型类中定义:
def virture_time
   time.to_s(:db)
end
 
def virture_time=(vt)
  self.time=Time.parse(vt)
end
 
这样设置了虚拟属性之后就可以分析输入的时间格式,转换为db格式的时间进行存储了。
 
譬如可以输入may 23 at 8:00
 
如果还想看到更多精彩的关于时间的输入方式。可以使用chronic gem.
Chronic is a natural language date/time parser written in pure Ruby.
 
chronic是一个用来分析自然语言表达时间的工具。纯ruby语言编写。
 
另外假如在输入时间格式的时候输的是一个错误的格式。
可以将model中的代码改成下面这样:
 
# models/task.rb
def virtual_time
  @virtual_time || time.to_s(:db)
end
def virtual_time=(vt)
  @virtual_time = vt
self.time = Time.parse(vt) rescue ArgumentError @time_invalid = true end




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/132083,如需转载请自行联系原作者
上一篇:关于yum库的相关问题


下一篇:grunt使用小记之开篇:grunt概述