如何处理像两个单独的日期和时间字段?

时间:2013-02-12 12:48:25

标签: ruby-on-rails ruby-on-rails-3 datetime parameters mongoid

如何制作两个单独的字段,以便可以处理到数据库中的一个datetime field

我正在使用jquery日期时间选择器,它在下面的代码示例中输入值之类的值。

参数仅包含带时间的字段,但忽略带日期的字段。

如果我用时间评论字段,则发送并保存日期,但参数看起来像“2013-23-02”,并且不像多参数那样转发。

#model
field :start_at, type: DateTime

#view
= f.text_field :start_at, :value => "2013-02-23"
= f.text_field :start_at, :value => "20:20:20"

1 个答案:

答案 0 :(得分:2)

你可以使用虚拟属性和回调(这没有经过测试,但你应该得到这个想法)

# model
attr_writer :start_at_time, :start_at_date

before_validation :build_start_at

def start_at_date
  @start_at_date ||= start_at.to_date
end

def start_at_time
  @start_at_time ||= start_at.strftime("%H:%M")
end

def build_start_at
  self.start_at = Time.parse "#{start_at_date} #{start_at_time}"
end    

# view
= f.text_field :start_at_date
= f.text_field :start_at_time