文本表单字段,db中的日期列?

时间:2013-08-02 02:29:35

标签: ruby-on-rails

以下代码摘自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

1 个答案:

答案 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帮助器会将三个下拉选项的值连接成一个字符串,带有文本字段,日期选择器可以为你工作。