Как получить «индекс» из двух массивов объектов? - PullRequest
2 голосов
/ 11 ноября 2019

В приложении на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...