`
hideto
  • 浏览: 2677334 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第三十二式: text_field time

    博客分类:
  • Ruby
阅读更多
一般编辑时间时我们使用datetime_select:
<%= f.datetime_select :due_at %>

如果我们希望用text_field来编辑时间,可以这样做:
<% f.text_field :due_at_string %>

修改Task类:
class Task < ActiveRecord::Base
  def due_at_string
    @due_at_string || due_at.to_s(:db)
  end

  def due_at_string=(due_at_str)
    @due_at_string = due_at_str
    self.due_at = Time.parse(due_at_str)
  rescue ArgumentError
    @due_at_invalid = true
  end

  def validate
    errors.add(:due_at, "is invalid") if @due_at_invalid
end

parse时间我们还可以用chronic这个ruby插件,可以parse "tomorrow"等fancy的东西
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics