Ruby on rails 在Redmine核心视图中添加额外的SQL查询(覆盖插件中的视图)

Ruby on rails 在Redmine核心视图中添加额外的SQL查询(覆盖插件中的视图),ruby-on-rails,redmine,Ruby On Rails,Redmine,我正在覆盖插件(/views/reports/_details.rhtml)中的Redmine核心视图。只是为了打印一些额外的数据,比如分配了多少未分配的问题 我尝试重写控制器,并添加一个方法来实现这一点,但我从未让它起作用,因此我将下面的代码添加到视图中(是的,它很难看,但页面很少被使用) 现在我的问题是,视图在所有跟踪器(row.id)中循环并显示信息,比如打开和关闭了多少问题。因此,我添加了一个额外的SQL查询,但它只适用于第一次跟踪器迭代,其余的则一遍又一遍地显示相同的数据 当我查看de

我正在覆盖插件(/views/reports/_details.rhtml)中的Redmine核心视图。只是为了打印一些额外的数据,比如分配了多少未分配的问题

我尝试重写控制器,并添加一个方法来实现这一点,但我从未让它起作用,因此我将下面的代码添加到视图中(是的,它很难看,但页面很少被使用)

现在我的问题是,视图在所有跟踪器(row.id)中循环并显示信息,比如打开和关闭了多少问题。因此,我添加了一个额外的SQL查询,但它只适用于第一次跟踪器迭代,其余的则一遍又一遍地显示相同的数据

当我查看development.log时,其中只有一个SQL查询。但是当我输出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") %>

(以前从未使用过RubyonRails或Redmine…

我通过添加两个SQL查询(在视图中)来解决这个问题,该查询将选择所选项目的所有问题

<% @all_unsigned_issues ||=
ActiveRecord::Base.connection.select_all("select i.status_id as status, s.is_closed as 
closed, t.id as tracker_id, count(i.id) as total
from
#{Issue.table_name} i, #{IssueStatus.table_name} s, #{Tracker.table_name} t 
where
i.assigned_to_id is null
and i.project_id=#{@project.id}
and i.status_id=s.id
and i.tracker_id=t.id
group by i.id") %>

然后我用

<%= aggregate_link @all_unsigned_issues, { "tracker_id" => row.id, "status" => 5 },
            :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)) %>
row.id,“状态”=>5},
:controller=>'issues',:action=>'index',:project\u id=>((row.is\u a?(project)?row:@project))%>

我通过添加两个SQL查询(在视图中)解决了这个问题,这两个SQL查询选择所选项目的所有问题

<% @all_unsigned_issues ||=
ActiveRecord::Base.connection.select_all("select i.status_id as status, s.is_closed as 
closed, t.id as tracker_id, count(i.id) as total
from
#{Issue.table_name} i, #{IssueStatus.table_name} s, #{Tracker.table_name} t 
where
i.assigned_to_id is null
and i.project_id=#{@project.id}
and i.status_id=s.id
and i.tracker_id=t.id
group by i.id") %>

然后我用

<%= aggregate_link @all_unsigned_issues, { "tracker_id" => row.id, "status" => 5 },
            :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)) %>
row.id,“状态”=>5},
:controller=>'issues',:action=>'index',:project\u id=>((row.is\u a?(project)?row:@project))%>