在haml中查找两个日期之间的范围

finding range between two dates in haml

我在 haml 方面没有经验,目前正在努力学习。下面是我的 haml 代码。当日期范围等于或超过 4 天时,我试图显示一个按钮。基本上要求是在距离结束日期只有 4 天时隐藏按钮..

  - range = booking.start_on..booking.end_on
  - if range >= 4
    = link_to "#",
      class: 'btn-flat btn-flat-split',
      title: "Extend Booking",
      data: { method: request.primary_action.method } do
      = "Extend Booking"
      %i.icon-chevron-right

我遇到了这个错误:

NoMethodError at /ideas/50114
undefined method `>=' for "06 Feb 2020".."20 Feb 2020":Range

我不能 100% 确定范围是否得到正确的输出或正确声明..?

你有一个日期范围,这是一个未实现 >= 方法的 Range 对象。

你需要的是获取每个日期对象之间相差的天数,为此使用 to_date:

p (booking.end_on.to_date - booking.start_on.to_date).to_i # 14

所以,对于你的情况:

- if (booking.end_on.to_date - booking.start_on.to_date).to_i >= 4
  ...

这是一个 Ruby 错误,不是 Haml。