ruby-on-rails - Rails 5 Ruby 2.5.3 If 语句基于月份范围
问题描述
所以我正在做一个个人项目。
我是一名卡车司机,我正在构建一个简单的应用程序来跟踪和计算收入等。
我正在尝试做的(可能有更好的方法)是强调我目前的有效燃油附加费仅基于几个月的范围。
在这种情况下,它的 4 月 1 日至 10 月 31 日和 11 月 1 日至 3 月 31 日,这可能会随着合同要求的规定而改变。
我的数据库中有一个 activeDate 和 endDate 列,这就是我想出的(但似乎不起作用)。
**<<index.html.erb>>**
<tbody>
<% @fscs.each do |fsc| %>
<% if Date.today === (fsc.activeDate..fsc.endDate) %>
<tr>
<td class="fsc_active"><%= fsc.name %></td>
<td class="fsc_active"><%= fsc.rate %></td>
<td class="fsc_active"><%= fsc.activeDate %></td>
<td class="fsc_active"><%= fsc.endDate %></td>
<td><%= link_to 'View', fsc %></td>
<td><%= link_to 'Edit', edit_fsc_path(fsc) %></td>
<td><%= link_to 'Delete', fsc, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% else %>
<tr>
<td class="fsc_inactive"><%= fsc.name %></td>
<td class="fsc_inactive"><%= fsc.rate %></td>
<td class="fsc_inactive"><%= fsc.activeDate %></td>
<td class="fsc_inactive"><%= fsc.endDate %></td>
<td><%= link_to 'View', fsc %></td>
<td><%= link_to 'Edit', edit_fsc_path(fsc) %></td>
<td><%= link_to 'Delete', fsc, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
<% end %>
</tbody>
任何关于我哪里出错的建议或关于如何使它变得更好的指示将不胜感激!如果需要更多信息,请告诉我。
编辑 1:抱歉,在这种情况下,只有月份才重要,而不是年份或日期。我很抱歉没有提到这一点。
解决方案
尝试做这样的事情:
(fsc.activeDate..fsc.endDate).include?(Date.today)
您试图将今天的日期等同于日期范围,而您想检查今天的日期是否存在于日期范围内。
推荐阅读
- google-apps-script - 将基于特定列值的范围复制到新工作簿中的多个选项卡中
- javascript - Vue Leaflet 地图图块顺序错误
- mysql - 在特定问题上使用连接来选择产品的 SQL 查询
- upload - Onedrive Upload API 上传损坏的文件或图像
- database - 使用数据创建表的副本而不记录
- javascript - 无法将日期范围插入多个选择选项标签
- java - Java 流可选,对两个项目进行空检查
- python - HoloViews 超出了 IOPub 消息速率
- maven - 如何激活 Maven 配置文件使用环境变量?
- windows - 如何在 Host.UI.PromptForCredential Powershell Windows 10 中输入密码文本字符串