В приложении на Rails 5 у меня такая ситуация:
<% report.periods.each do |period| %>
<ul>
<% period.assignments.where('assignments.end_date BETWEEN ? AND ?', period.start_date, period.end_date).order('start_date ASC').each_with_index do |assignment, index| %>
<li><%= index + 1 %></li>
<% end %>
</ul>
<% end %>
В результате этого кода каждый массив имеет свои собственные индексы. Например, если у вас есть два периода (один с 3 объектами, а другой с 4 объектами), вы получите следующее:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
В результате мне потребуется один список индексов вместо двух. Используя приведенный выше пример, я хочу следующее:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
Как мне достичь этого результата?
Обновление:
Вот модель отчета:
class Report < ApplicationRecord
has_many :periods, dependent: :destroy
has_many :assignments, through: :periods
end
Вот модель периода:
class Period < ApplicationRecord
belongs_to :report
has_many :assignments, through: :programs
end
Вот модель назначения:
class Assignment < ApplicationRecord
belongs_to :assignment_type
belongs_to :value_chain_activity
belongs_to :project_type
belongs_to :user
belongs_to :program
has_and_belongs_to_many :organizations, dependent: :destroy
has_many :activities, dependent: :destroy
has_many :cost_shares, dependent: :destroy
has_many :recommendations, dependent: :destroy
has_many :progress_reports, through: :recommendations
end