문제

내 플러그인 (/views/reports/_details.rhtml)에서 Redmine Core보기를 우선하고 있습니다. 얼마나 많은 열린 문제가 할당되어 있고 할당되지 않은 것과 같은 추가 데이터를 인쇄하기 위해.

대신 컨트롤러를 무시 하고이 작업을 수행하는 메소드를 추가하려고했지만 작동하지 않으므로 아래 코드를보기에 추가했습니다 (예, 추악하지만 페이지는 거의 사용되지 않습니다).

이제 내 문제에 따라보기는 모든 트래커 (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") %>

Development.log의 SQL 쿼리

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을 사용한 적이 없습니다 ...)

도움이 되었습니까?

해결책

선택한 프로젝트에 모든 문제를 선택하는 두 개의 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)) %>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top