0

下面的代码取自 Ryan Bates 修改过的关于在 Rails 应用程序中制作日历的一集。http://railscasts.com/episodes/213-calendars-revised?view=asciicast如果您不熟悉他的剧集格式,他会发布他制作的项目的“之前”和“之后”源代码。在剧集中实现 jquery datepicker 时,他将<%= f.date_select :published_on %>字段更改为 a <%= 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
4

1 回答 1

0

我一直使用 jQuery Datepicker,并在表单中使用 text_field 和 model 属性作为 date_field。有用。Rails 会自动以正确的格式解析值。如果您对正确保存到数据库有任何问题,您可以使用 jQuery Datepicker 指定格式。

还有一些 gem 可以验证 text_field 的日期格式。我遇到了一个我也在使用时间选择器的场景。这种情况确实抛弃了 Rails 中内置的默认日期解析。这是我在 Stack O 上提出的问题的链接

rails 3.2中的jQuery datetimepicker格式

rails 提供的 date_field 帮助器会将三个下拉选择的值连接成一个字符串,并带有一个文本字段,日期选择器会为您完成工作。

于 2013-08-02T02:50:58.137 回答