如何将数据从html5输入类型日期/时间保存为Rails中的日期时间?

时间:2011-11-07 23:46:54

标签: jquery ruby-on-rails html5 datetime html-helper

如何处理这两个输入,以便两者都可以发送到控制器并保存为日期时间?或者任何帮助者/宝石看起来像html5的日期和时间选择器?

html5输入:

%input{:type => "date", :value => "yyyy-mm-dd"}
%input{:type => "time", :value => "07:00"}

标准助手:

= f.datetime_select :time

修改 发生在我身上的更简单的解决方案我检查了它并且它适用于datetime字段:

%input{:name => "model[start_at]", :type => "date", :value => "yyyy-mm-dd"}
%input{:name => "model[start_at]", :type => "time", :value => "07:00"}

1 个答案:

答案 0 :(得分:2)

假设您的日期时间字段被调用" started_at",请尝试:

1)在你的模型中,定义这两个方法:

def started_at_string
  # return started_at datetime converted to a string in a desired format, e.g.:
  self.started_at.strftime(Time::DATE_FORMATS[:default])
end

started_at_string=(datetime_string)
  self.started_at = Time.zone.parse(datetime_string)
  # also you should process cases when the string is not a datetime
end

2)在你看来:

f.text_field :started_at_string

3)将此日期选择器应用于文本字段: http://jqueryui.com/demos/datepicker/,这次选择器位于顶部:http://trentrichardson.com/examples/timepicker/,您将获得一个不错的日期时间选择器。

这种方法对iPhone来说效果不佳(屏幕键盘和拾取器同时弹出并且很难输入日期)。