答案 0 :(得分:17)
答案 1 :(得分:16)
答案 2 :(得分:5)
截至目前,我建议jquery-ui-rails gem高于其他答案,原因很简单,你可以只包含datepicker资产而不需要整个jquery ui库!
答案 3 :(得分:4)
我使用albertopq提到的albertopq的jquery_datepicker,它适用于常规表单,嵌套属性等。这让我很容易。 jquery_datepicker也正确地将选项传递给datepicker必要的javascript调用。
以下是我的一个嵌套表单中的示例:
<%= f.datepicker 'availability', :minDate => 0, :maxDate => "+8Y", :tab_index => autotab %>
minDate和maxDate传递给datepicker,tab_index被放入文本字段html。 (autotab只是我的表单助手,可以推进标签+ 1 ...对我来说比硬编码更好。)
答案 4 :(得分:2)
Rails 5.x更新
步骤1.安装jquery-ui-rails gem
# gemfile
gem 'jquery-ui-rails'
# app/assets/javascripts/application.js
//= require jquery-ui/widgets/datepicker
# app/assets/stylesheets/application.css
*= require jquery-ui/datepicker
步骤2.假设您有一个名为Event的资源,其日期或日期时间字段名为:start,则在表单中将:start字段设为文本字段。
# app/views/events/_form.html.erb
<%= f.label :start, 'Start Date' %>
<%= f.text_field :start %>
步骤3.添加Javascript(在此处使用CoffeeScript语法)。 Line1)如果你启用了Turbolinks(Turbolinks通过加载AJAX来点击链接时加速Rails页面加载)你需要添加一个包装器,或者从内部链接导航到页面时不会加载JavaScript函数。
Line2)您正在定位表单中的元素ID。 Rails通过组合模型名称和字段名称自动为表单输入分配id。
Line3)您需要设置dateFormat,因为jQuery-UI和Rails使用不同的默认日期格式。
# app/assets/javascripts/event.coffee
$(document).on 'turbolinks:load', ->
$('#event_start').datepicker
dateFormat: 'yy-mm-dd'
对于Rails 4,除了JavaScript(或CoffeeScript)文件中的第一行外,一切都是相同的。在Rails 4中启用Turbolinks时加载JavaScript的包装器是:
$(document).on "page:change", ->
答案 5 :(得分:1)
答案 6 :(得分:1)
可能有点晚了,但我使用了一个简单的宝石:
的Gemfile:
gem 'jquery-ui-rails'
的application.js:
//= require jquery-ui
Application.css
*= require jquery-ui
然后:
Bundle install