0

所以我正在尝试使用这个 gem 从 Jira 的其余 API 中解析出一些信息:https ://github.com/sumoheavy/jira-ruby

我正在创建一个报告应用程序,它将计算特定“受让人”解决特定项目中问题的次数。

哈希看起来像这样......

[#<JIRA::Resource::Issue:329487 @attrs={'key'=>'value','key'=>'value', "fields"=> {project=>{'key'=>'value'}, assignee=>{'key'=>'value'}}

我特别需要获取受让人的价值和项目的价值,然后以某种方式将它们放在一个表格中,该表格将列出每个受让人,以及每个项目中有多少已完成的问题。

由于我正在使用的查询,这里出现的问题只是已完成的问题,所以不用担心,只需将其解析出来并使用模型中的某种方法对其进行计数。

我目前可以通过在视图中使用它来制作一个很好的解析表(没有得到我需要的信息)......

`<table>
  <thead>
    <th>Count</th>
    <th>Issue Key</th>
    <th>Summary</th>
    <th>Time Estimate</th>
    <th>Reporter</th>
    <th>Assignee</th>
  </thead>
<% @issues.each_with_index do |issue, index| %>
  <tr>
    <td><%= index + 1 %>  </td>
    <td><%= issue.key %> </td>
    <td><%= issue.fields['summary'] %>  </td>
    <td><%= issue.fields['aggregatetimeestimate'] %> </td>
    <td><%= issue.fields['reporter'].values[4] %> </td>
  <% if issue.fields['assignee'].present? %>
    <td><%= issue.fields['assignee'].values[4] %></td>
  <% else %>
    <td>N/A</td>
  <% end %>
  </tr>
<% end %>
</table>`

我宁愿看到... 是一个表格,其中不同的受让人作为行,不同的项目作为列,然后是每个项目具有特定受让人的问题数量,然后是右侧的总计。因此,我需要遍历所有受让人,合并所有相同的受让人,并在列中计算每个项目的计数。

我不想使用 activerecord,因为我没有保存到数据库中。数据库是通过 API 检索的信息,因此它是不断变化的。

请记住,项目散列和受让人散列是它们自己的散列,每个散列在整个问题散列中都有几个层次。{问题哈希=> {字段哈希=>{项目哈希}{受让人哈希}}}

谢谢你的帮助!

4

1 回答 1

1

试试这个:

# Controller
# {Assignee => {Project => Issues closed} }
@assignee_hash = Hash.new { |hash, key| hash[key] = Hash.new(0) }
@projects = Array.new
@issues.each do |issue|
    # I'm not familiar with the structure of the assignee/project
    # hashes here (and 'key'=>'value' isn't too descriptive),
    # but these next 2 lines should be modified to access whatever 
    # value you want to identify the assignee and project by
    assignee = issue.fields['assignee'].??
    project  = issue.fields['project'].??
    @projects.push project unless projects.include? project
    @assignee_hash[assignee][project] += 1
end

#View
<table>
  <thead>
    <th>Assignee</th>
    <% @projects.each do |project| %>
      <th><%= project %></th>
    <% end %>
    <th>Total</th>
  </thead>
  <% @assignee_hash.each do |assignee, project_hash| %>
    <tr>
      <td><%= assignee %></td>
      <% @projects.each do |project| %>
        <td><%= project_hash[project] %></td>
      <% end %>
      <td><%= project_hash.values.reduce(:+) %></td>
    </tr>
  <% end %>
</table>
于 2013-06-18T21:44:09.950 回答