在haml中查找两个日期之间的范围
Posted
技术标签:
【中文标题】在haml中查找两个日期之间的范围【英文标题】:finding range between two dates in haml 【发布时间】:2019-08-06 09:29:47 【问题描述】:我在 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% 确定该范围是否得到正确的输出或正确声明..?
【问题讨论】:
【参考方案1】:你有一个天的范围,这是一个没有实现>=
方法的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。
【讨论】:
我尝试了你的建议并得到了这个:undefined method `-' for "20 Feb 2020":String Did you mean? -@
抱歉,我在纯 Ruby 环境中尝试过,但没有意识到这两个变量都是字符串。查看更新的答案。以上是关于在haml中查找两个日期之间的范围的主要内容,如果未能解决你的问题,请参考以下文章