我通过添加两个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)) %>