3

我有一列start日期时间类型,并希望将其显示为文本字段(以添加日期选择器)和 time_select。我尝试了不同的方法,其中一种是使用fields_for/simple_fields_for。

<%= f.simple_fields_for :start do |start| %>
  <%= start.input :date, :as => :string, :input_html => { :class => 'datepicker'} %>
  <%= start.input :time, :as => :time, :minute_step => 5, :input_html => { :class => 'input-small'}  %>
<% end %>

如何将这两个字段转换为模型中所需的日期时间列?或者有没有更好的方法以匹配数据库中一个字段的形式显示两个字段?

4

2 回答 2

4

您必须解析控制器中的单独参数并将它们组合起来以生成日期时间。

我建议制作一个名为 StartTime 的模型来解析它

...应用程序/模型/start_time.rb

class StartTime
  extend ActiveModel::Naming

  attr_accessor :date, :time

  def initialize(date, time)
    @date = date.is_a?(String) ? Date.parse(date) : date
    @time = time
  end

  def to_timestamp
    # parse @date and @time into Datetime

end

Chronic 是一个有用的宝石,用于从字符串中解析日期/时间

希望这可以帮助

于 2012-05-03T23:06:06.470 回答
0

您可以简单地使用 Jquery timepicker 而不是组合两个字段来形成日期时间

检查这个http://trentrichardson.com/examples/timepicker/

于 2012-05-04T08:29:47.600 回答