Ruby显示数组值

时间:2015-04-21 22:04:06

标签: ruby-on-rails ruby

我不是红宝石开发者。这是我第一次查看代码。我想构建一个动态表,我已经管理下面的代码。但是,除了第一个和最后一个值之外,我无法显示数组的所有内容。如何显示所有值?

感谢您的帮助!!

<style>table, td, th{border:1px solid white;}td{padding:5px;}th{background-color:#E0E6EB;color:black;}</style>
<div>
<table border=2>
<tr>
  <th width="250px"><B><p style="text-align: center">Name</p></B></th>
<th width="120px"><B><p style="text-align: center">Number</p></B></th>
<th width="60px"><B><p style="text-align: center">Status</p></B></th>
<th width="155px"><B><p style="text-align: center">Product Type</p></B></th>
<th width="60px"><B><p style="text-align: center">Source</p></B></th>
</tr>
  <% tempTickets = @subject.PersonAccounts.sorted_by(field("title").in_descending_order) %>  
  <% cnt = tempTickets.length %>
  <% tempTickets.each do |ticket| %>
<div>
<tr>
  <td><%= ticket['perfinaccnt-accountname'].first %></td>
<td><%= ticket['perfinaccnt-accountnumber'].first %></td>
<td><%= ticket['perfinaccnt-accountstatus'].first %></td>
<td><%= ticket['perfinaccnt-producttype'].first %></td>
<td><%= ticket['perfinaccnt-accountsrcsystem'].first %></td>
</tr>
</div>
<div>
<tr>
  <td><%= ticket['perfinaccnt-accountname'].last %></td>
<td><%= ticket['perfinaccnt-accountnumber'].last %></td>
<td><%= ticket['perfinaccnt-accountstatus'].last %></td>
<td><%= ticket['perfinaccnt-producttype'].last %></td>
<td><%= ticket['perfinaccnt-accountsrcsystem'].last %></td>
</tr>
</div>

  <% end %>
</table>
</div> 

2 个答案:

答案 0 :(得分:1)

你可以用三个嵌套循环来完成它:

<%= tempTickets.each do |ticket|
    [
      'perfinaccnt-accountname',
      'perfinaccnt-accountnumber',
      'perfinaccnt-accountstatus',
      'perfinaccnt-producttype',
      'perfinaccnt-accountsrcsystem'
    ].each do |f|
        ticket[f].each do |tf|
            puts "<td>tf</td>";
        end if ticket[f]
    end 
end %>

答案 1 :(得分:0)

我不确定这里的数据结构,但您可以通过对tempTickets和所有后续对象执行#inspect来检查它。从它的外观&#34;票[&#39; perfinaccnt-accountname&#39;]&#34;实际上是一个数组 因此你可以循环通过它。不是最快的方法,但它应该只是做一个嵌套循环。

<style>table, td, th{border:1px solid white;}td{padding:5px;}th{background-color:#E0E6EB;color:black;}</style>
<div>
<table border=2>
<tr>
  <th width="250px"><B><p style="text-align: center">Name</p></B></th>
<th width="120px"><B><p style="text-align: center">Number</p></B></th>
<th width="60px"><B><p style="text-align: center">Status</p></B></th>
<th width="155px"><B><p style="text-align: center">Product Type</p></B></th>
<th width="60px"><B><p style="text-align: center">Source</p></B></th>
</tr>
  <% tempTickets = @subject.PersonAccounts.sorted_by(field("title").in_descending_order) %>
  <% cnt = tempTickets.length %>
  <% tempTickets.each do |ticket| %>
  <div><tr>
    <%  ticket.each do |k,v|
          v.each do |col| %>
            <td><%= col %></td>
          <% end %>
        <% end %>
  </tr></div>
  <% end %>
</table>
</div>