4

1列の合計を取得して表示したい状況があります

たとえば、activeadmin で

ActiveAdmin.register Expense do    
   index do       

    column :amount 
    column :details
    column :created_at

    default_actions
  end         
end

amount列を合計して表示する必要があります。またTotal Sum、おそらくサイドバーを表示する場所がわかりませんか?結果がフィルター処理されている場合、表示される結果に応じて合計を変更する必要があります。

4

6 に答える 6

8

collection現在適用されているフィルター/スコープを考慮し、合計を実行するために使用するreduce(:+)基になるものにアクセスするだけで、実行中の合計でカウントアップする必要がなくなります。

ActiveAdmin.register Expense do    
   index do       
    column :amount 
    column :details
    column :created_at

    default_actions

    div class: "panel" do
      h3 "Total amount: #{collection.pluck(:amount).reduce(:+)}"
    end
  end         
end
于 2016-07-29T13:52:07.410 に答える
3
ActiveAdmin.register Expense do    
  amount = 0
  index do       

  column :amount 
  column :details
  column :created_at
  column("sub amount") {|resource| amount = amount + resource.amount}
  default_actions
  div :class => "panel" do
    h3 "Total: #{amount}"
  end
 end         
end
于 2013-03-27T04:56:27.693 に答える
0

このコードのように、列(「サブ金額」)なしでパネルにのみ金額を表示することを好みます。

   ActiveAdmin.register Expense do    

    index do       
      amount = 0
      column :amount 
      column :details
      column :created_at
      registers.each {|resource| amount += resource.amount}
      default_actions
     div :class => "panel" do
       h3 "Total: #{amount}"
     end
   end         
 end
于 2016-04-25T11:39:03.693 に答える
0

「index do」の上に「mount = 0」を指定して上記のコードを使用しようとすると、管理ページを更新すると値が増加します。これで私の問題は解決しました。

ActiveAdmin.register Expense do    

  index do       
    amount = 0
    column :amount 
    column :details
    column :created_at
    column("sub amount") {|resource| amount = amount + resource.amount}
    default_actions
    div :class => "panel" do
      h3 "Total: #{amount}"
    end
  end         
end
于 2016-02-01T08:41:46.887 に答える
-1
ActiveAdmin.register Expense do    

  index do       
    sum = 0
    column "Amount" do |expense|
      sum += expense.amount 
      expense.amount
    end
    column :details
    column :created_at
    default_actions
    div :class => "panel" do
      h3 "Total: #{sum}"
    end
  end         
end
于 2016-07-04T10:10:03.410 に答える