Я создал projet
эшафот, который имеет много к одной ассоциации с user
. проект scaffold имеет связь один-ко-многим с stage
, stage - связь один-ко-многим с sub_task
. каждый каркас имеет один атрибут planned_end_date
, теперь я хочу напечатать номер этапа, этап и подзадача не завершена в выбранную дату. и выведите это в столбец действия project # index. этот код хорошо работает в проекте # show action, удаляя @projects.each do |project|
, но тот же код в проекте # index action печатает одинаковое число в каждой строке столбца.
projects_controller.rb (index # Action)
@projects = current_user.projects.all.order("created_at DESC").paginate(page: params[:page], per_page: 15)
@projects.each do |project|
@stages = Stage.where(project_id: @projects.ids )
@tasks = Task.where(stage_id: @stages.ids)
@sub_tasks = SubTask.where(task_id: @tasks.ids)
stage_counter = 0
task_counter = 0
sub_task_counter = 0
@stages.each{|s| stage_counter += 1 if s.planned_end_date.past? && s.status == 0 || s.planned_end_date.past? && s.status == 2}
@tasks.each{|s| task_counter += 1 if s.planned_end_date.past? && s.status == 0 || s.planned_end_date.past? && s.status == 2}
@sub_tasks.each{|s| sub_task_counter += 1 if s.planned_end_date.past? && s.status == 0 || s.planned_end_date.past? && s.status == 2}
@count = stage_counter + task_counter + sub_task_counter
end
project # index
<table>
<thead>
<tr>
<th>Project Name</th>
<th>Activity Status</th>
</tr>
</thead>
<tbody>
<% @projects.each do |project| %>
<tr>
<td><%= project.project_name %></td>
<td><%= @count %></td>
</tr>
<% end %>
</tbody>
</table>
Gemfile
ruby '2.6.3'
gem 'rails', '~> 5.2.4'
Я хочу напечатать общее количество этапов, задач, под_задач каждого проекта, которые не были выполнены вовремя. в проекте # index действие. Может кто-нибудь знает, чего мне не хватает ???