[英]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.