首页 > 解决方案 > 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:抱歉,在这种情况下,只有月份才重要,而不是年份或日期。我很抱歉没有提到这一点。

标签: ruby-on-railsruby

解决方案


尝试做这样的事情:

(fsc.activeDate..fsc.endDate).include?(Date.today)

您试图将今天的日期等同于日期范围,而您想检查今天的日期是否存在于日期范围内。


推荐阅读