【问题标题】:Iterate in array of hashes in side array in ruby在 ruby​​ 的侧数组中迭代哈希数组
【发布时间】:2021-02-08 12:46:50
【问题描述】:

我想迭代这个对象并在表格中打印

[
  {
    :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_details 在一行中,transaction_details 在另一行中,采用表格格式。 transaction_detailsinvoice_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 有好处,所以它不起作用

谢谢

【问题讨论】:

  • 到目前为止你有什么代码?可以发一下吗?
  • 所需的输出是什么?作为 invoice_details 和 transaction_details 的表头只有 customer_name 常见。
  • 我编辑问题

标签: ruby-on-rails ruby iteration each


【解决方案1】:

我做到了

<% 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%>

【讨论】:

  • .. 用上下文解释以避免更多的反对意见。 EOR。
猜你喜欢
  • 1970-01-01
  • 2015-08-30
  • 2014-12-15
  • 2015-11-08
  • 2016-02-19
  • 2018-08-29
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
相关资源
最近更新 更多