尝试使用 flatpickr 作为 UI 来使用 Rails 7.0.1 和 ruby 3.1 设置日期字段。单击输入字段时,未呈现预期的 2 个月日历,实际上,浏览器网络选项卡中未注册任何内容。
在bin/importmap pin flatpickr
rails将库固定到importmap.rb
文件中的cdn之后:
pin "flatpickr", to: "https://ga.jspm.io/npm:flatpickr@4.6.9/dist/flatpickr.js"
application.js
具有最初生成的import "controllers"
.
flatpickr_controller.rb
是在 javascript/controllers 目录中创建的
import { Controller } from "@hotwired/stimulus"
import flatpickr from "flatpickr"
export default class extends Controller {
connect() {
this.config = {
enableTime: false,
dateFormat: 'Y-m-d',
}
}
}
视图部分调用:
<%= form_with model: promo do |f| %>
<%= f.text_field :date_from, placeholder: t(".select"), data: { controller: "flatpickr" } %>
<% end %>
而控制器设置
@promos = Promo.up_comings(60)
@promo = Promo.new
@next_promo = Promo.next
@dates_to_disable = @promos.pluck(:date_from)
为什么日历不渲染?
我也对放置不同 flatpickr 选项的位置感到困惑:在控制器中,或直接放入表单日期元素中。