以下代码摘自Ryan Bates关于在Rails应用程序中制作日历的修订版。 http://railscasts.com/episodes/213-calendars-revised?view=asciicast如果你不熟悉他的剧集格式,他会发布他所制作的项目的“之前”和“之后”源代码。在剧集中实现jquery datepicker时,他将<%= f.date_select :published_on %>
字段更改为<%= f.text_field :published_on %>
,我猜这是jQuery datepicker的要求。但是,查看“之后”代码的架构,published_on
列仍为“日期”列,而不是“文本”字段。这似乎很奇怪,因为表单字段变成文本字段,或者是“推荐”的方式吗?如果表单字段是日期的text_field,请提供有关db列应该是什么的一些指导。
<div class="field">
<%= f.label :published_on %><br />
<%= f.text_field :published_on %>
</div>
ActiveRecord::Schema.define(:version => 20120810222509) do
create_table "articles", :force => true do |t|
t.string "name"
t.date "published_on"
t.text "content"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
答案 0 :(得分:0)
我一直使用jQuery Datepicker,并在表单中使用text_field,使用model属性作为date_field。有用。 Rails将以正确的格式自动解析值。如果您在将数据库正确保存到数据库时遇到任何问题,可以使用jQuery Datepicker指定格式。
还有一些宝石可以验证text_field的日期格式。我遇到了一个我也在使用时间选择器的场景。这种情况确实抛弃了内置于rails中的默认日期解析。这是我在Stack O上提出的问题的链接
jQuery datetimepicker formatting in rails 3.2
rails提供的date_field帮助器会将三个下拉选项的值连接成一个字符串,带有文本字段,日期选择器可以为你工作。