Я переопределяю основной вид Redmine в моем плагине (/views/reports/_details.rhtml). Просто для печати дополнительных данных, например, сколько открытых выпусков назначено, а не назначено.
Я попытался вместо этого переопределить контроллер и добавить метод, чтобы сделать это, но я так и не получил его в работу, поэтому я добавил приведенный ниже код в представление (да, это уродливо, но страница будет редко использоваться).
Теперь к моей проблеме, представление циклично проходит через все трекеры (row.id) и показывает информацию, например, сколько вопросов открыто и закрыто. Поэтому я добавил дополнительный SQL-запрос, но он работает только для первой итерации трекера, а для остальных он показывает одни и те же данные снова и снова.
Когда я смотрю на файл development.log, в нем только один SQL-запрос. Но когда я вывожу row.id (<% = row.id%>), он показывает правильное значение для каждого трекера.
Как мне решить эту проблему?
Код в _details.rhtml
<% @total_assigned_and_open ||=
ActiveRecord::Base.connection.select_all("select count(i.id) as total
from
#{Issue.table_name} i, #{IssueStatus.table_name} s, #{Tracker.table_name} t
where
i.status_id=s.id
and i.tracker_id=#{row.id}
and i.project_id=#{@project.id}
and i.assigned_to_id is null
and s.is_closed = 0
group by s.id, s.is_closed, t.id limit 1") %>
SQL-запрос в development.log
select count(i.id) as total
from
issues i, issue_statuses s, trackers t
where
i.status_id=s.id
and i.tracker_id=1
and i.project_id=1
and i.assigned_to_id is null
and s.is_closed = 0
group by s.id, s.is_closed, t.id limit 1
(Никогда ранее не использовал Ruby on Rails или Redmine ...)