0

関連するスニペット

Show.html.erb

<% outbound_messages.each do |outbound_message| %>
        <h5>Outbound Message</h5>
        <%= render "trace/display_tabular_data", :data => outbound_message %>
    <% end %> 

Display_tabular_data.html.erb

<table border="1px solid black">
  <thead>
  <tr>
    <%data.each do |key,value|%>
        <th><%=key.capitalize%></th>
    <%end%>
  </tr></thead><tr>
  <%data.each do |key,value|%>
      <td><%=value%></td>
  <%end%>
</tr>
</table>

つまり、データの各行が一意のテーブルに出力されます。つまり、 http://imgur.com/1gskRvXのようなものがあります

しかし、明らかにはるかに良い結果は、単一のテーブルとしてのものになります(望ましい結果)

Outbound Message
Message ID, Exchange, Relayed
Row1
Row2
Row3
Row4
...
....

私がこれについてどうやって行くことができるかについて何か考えはありますか?Display_tabular_dataはshow.html.erbのさまざまな場所で少なくとも15回呼び出されるため、show.html.erbではなくdisplay_tabular_dataのみに変更を加えることで、この最終結果を得ることができれば、はるかに簡単になります。不可能な場合は、最善の方法を教えてください。

4

2 に答える 2

1

オブジェクトごとに個別のテーブルをレンダリングしたくない場合は、show.html.erb で次のようにします。

<% unless outbound_messages.empty? %>
  <%= render 'trace/display_tabular_data', :data => outbound_messages %>
<% end %>

そして部分的に:

<h5>Outbound Messages</h5>

<table border="1px solid black">
  <thead>
  <tr>
    <% data.first.each do |key,value| %>
      <th><%=key.capitalize%></th>
    <% end %>
  </tr>
  </thead>

  <% data.each do |outbound_message| %>
    <tr>
    <% outbound_message.each do |key,value|%>
        <td><%=value%></td>
    <% end %>
    </tr>
</table>

これは、すべての outbound_message が同じキーのセットを持っていることが確実な場合にのみ機能します。

于 2013-03-06T14:33:01.740 に答える
0

どうぞ..

<% if outbound_messages.count > 0 %>
  <h5>Outbound Message</h5>
    <table border="1px solid black">
      <thead>
        <tr>
        <td>Message ID</td>
        <td>Exchange</td>
        <td>Relayed</td>
      </tr>
      </thead>
      <% outbound_messages.each do |outbound_message| %>
        <tr>
          <td>
            <%= outbound_message[:message_id] %>
          </td>
          <td>
            <%= outbound_message[:exchange] %>
          </td>
          <td>
            <%= outbound_message[:relayed] %>
          </td>
        </tr>
      <% end %> 
    </table>
<% end %>

部分を完全に削除できます

于 2013-03-06T14:33:49.493 に答える