首页 > 解决方案 > 在 ruby​​ 的侧数组中迭代哈希数组

问题描述

我想迭代这个项目并在表格中打印

[
  {
    :invoice_details=>
      {
        :customer_name=>"Dylan Sollfrank",
        :invoice_number=>"1060",
        :invoice_status=>"paid",
        :transaction_total_amount=>50.0,
        :trnsaction_details=>
          [
            {
              :transaction_number=>"QB1601361635",
              :customer_name=>"Dylan Sollfrank",
              :amount=> {:amount_to_pay=>50.0, :payment_fee=>0.0},
              :created_time=>"12:10 PM",
              :created_date=>"Sep 29,2020",
              :payment_method=>"Quickbook",
              :payment_status=>"completed"
            }
          ]
      }
  }
]

invoice_detailstransaction_details在表格格式的一行和另一行中。transaction_details是内部的一个数组invoice_details

编辑

我做到了

I did it 

 <% ar_activity.first.each do |invoice, invoices_hash| %>         
            <tr>
                <td><%= invoices_hash[:invoice_number] %> </td>
                <td><%= invoices_hash[:invoice_status]%></td>
                <td><%= invoices_hash[:customer_name] %> </td>
                <td><%= invoices_hash[:transaction_total_amount]%></td>                    
            </tr>                
            <% invoices_hash[:trnsaction_details].each do |transaction|%>                
                <tr>
                    <td></td>
                    <td><%= transaction[:transaction_number]%></td>
                    <td><%= transaction[:customer_name]%></td>
                    <td><%= transaction[:amount][:amount_to_pay].to_f + transaction[:amount][:payment_fee].to_f%></td>
                    <td><%= "#{transaction[:created_time]} "  "#{transaction[:created_date]}" %></td>
                    <td><%= transaction[:payment_method] %></td>
                    <td><%= transaction[:payment_status] %></td>    
                </tr>
            <%end%>            
    <%end%>

但它只对第一个 invoice_details 有好处,所以它不起作用

谢谢

标签: ruby-on-railsrubyiterationeach

解决方案


我做的

<% ar_activity.each do |invoices|%>
    <% invoices.each do |invoice, invoices_hash| %>                       
        <tr>
            <td><%= invoices_hash[:invoice_number] %> </td>
            <td><%= invoices_hash[:invoice_status]%></td>
            <td><%= invoices_hash[:customer_name] %> </td>
            <td><%= invoices_hash[:transaction_total_amount]%></td>                    
        </tr>                
        <% invoices_hash[:trnsaction_details].each do |transaction|%>                
            <tr>
                <td></td>
                <td><%= transaction[:transaction_number]%></td>
                <td><%= transaction[:customer_name]%></td>
                <td><%= transaction[:amount][:amount_to_pay].to_f + transaction[:amount][:payment_fee].to_f%></td>
                <td><%= "#{transaction[:created_time]} "  "#{transaction[:created_date]}" %></td>
                <td><%= transaction[:payment_method] %></td>
                <td><%= transaction[:payment_status] %></td>    
            </tr>
        <%end%>            
    <%end%>
<%end%>

推荐阅读