簡體   English   中英

您如何在 Rails 6 上使用/ERB Ruby 迭代一系列數字?

[英]How do you iterate over a range of numbers with each do with/ ERB Ruby on Rails 6?

我正在嘗試迭代多年的方法,該方法將獨特的年份傳遞到軌道上 ruby 中的 where 子句。 出於某種奇怪的原因,當我嘗試將這些數字傳遞給方法鏈時,它不會觸發。 對於初學者來說,我正在開發一個報告功能,該功能可以在一個范圍內按年跟蹤圖表。 例如:搜索從 2020 年開始,到 2024 年結束。從 2020 年到 2024 年的所有年份都會顯示匯總在一起的每一年的報告。 現在,我只有一年,我應該在一個響應中得到 2020、2021 和 2024 年。如何通過 integer 打印出一系列年份並將它們通過每個塊傳遞給相應的方法?

下面的示例代碼:

params {start_year: "2019", end_year: "2020"}

params[:start_year], params[:end_year]

<% [@start_year.to_i+1...@end_year.to_i].each do |facility_year| %>
   <% @facility.chart_records.where('extract(year from record_date) =?', facility_year).limit(11).each do |chart_record| %>
<tr>
<td><%= chart_record.record_date.strftime("%Y") %></td>
<td>Month: Jan</td>
<td><%= ChartRecord.where(facility_id: @facility.id).where('extract(month from record_date) =?', 1).where('extract(year from record_date) =?', facility_year).sum(:fit_jeans_count)</td>
</tr>
<% end %>

我只想從 start_year+1 計數到 end_year 計數獲得一個唯一的年份,然后顯示該范圍內每一年的一條記錄..

對於范圍,使用括號(@start_year.to_i+1...@end_year.to_i)而不是括號。 使用括號,您可以創建一個數組,其中只有一個包含范圍的項目。 使用括號,您將立即獲得一個范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM