Ruby on rails 3 如何根据印度财政年度设置月份范围

Ruby on rails 3 如何根据印度财政年度设置月份范围,ruby-on-rails-3,date-range,Ruby On Rails 3,Date Range,根据印度财政年度(4月1日至3月31日),当月份更改为1月时,如何获取范围?12月31日之后,我的逻辑失败,不显示任何内容。以下是我显示所有月份的代码: 型号: 观点: <% (current_financial_year.start_date.month..Date.today.month).times do |a| %> <tr> <td><%= PayrollDetails.get_month

根据印度财政年度(4月1日至3月31日),当月份更改为1月时,如何获取范围?12月31日之后,我的逻辑失败,不显示任何内容。以下是我显示所有月份的代码: 型号:

观点:

<% (current_financial_year.start_date.month..Date.today.month).times do |a| %>
             <tr>
               <td><%= PayrollDetails.get_month(a.to_s)%></td>
             </tr>
             <% end %>

如何解决rails3中的反转范围问题,请提前感谢

看来你没有处理包裹箱。你可以用很多方法来处理它。这是我能想到的最基本的方法:

<% (current_financial_year.start_date.month..(Date.today.month < current_financial_year.start_date.month ? Date.today.month+12 : Date.today.month)).times do |a| %>
  <tr>
    <td><%= PayrollDetails.get_month((a%12).to_s)%></td>
  </tr>
<% end %>

这相当难看。您可能希望为当前月份创建一个局部变量,或者您可以打开日期类并定义一个执行以下操作的财务月:逻辑


我希望这能有所帮助。

我同意@Geoff的回答,我已经改变了这一点,以适应我的情况:

 <% for a in (current_financial_year.start_date.month..(Date.today.month < current_financial_year.start_date.month ? Date.today.month+12 : Date.today.month)) %>
             <tr>
               <td><%= PayrollDetail.get_month((a>12? (a -12) : a ).to_s)%></td>
<% end %>

12? (a-12):a)至(s)%>

这对我很有用。

谢谢@Geoff这对我来说可能是一个新的开始
<% (current_financial_year.start_date.month..(Date.today.month < current_financial_year.start_date.month ? Date.today.month+12 : Date.today.month)).times do |a| %>
  <tr>
    <td><%= PayrollDetails.get_month((a%12).to_s)%></td>
  </tr>
<% end %>
 <% for a in (current_financial_year.start_date.month..(Date.today.month < current_financial_year.start_date.month ? Date.today.month+12 : Date.today.month)) %>
             <tr>
               <td><%= PayrollDetail.get_month((a>12? (a -12) : a ).to_s)%></td>
<% end %>