2016-09-20 111 views
0
Rails 3.2 

我在invoices_controller.rb如下:動態顯示每頁總,我分頁

def index 
    @invoices = Invoice.all.paginate(:page => params[:page], per_page: 10) 
    .... 
    @invoices_total = @invoices.compact.inject(0){ |sum, invoice| sum + invoice.total } 

這裏的視圖(苗條):

- if @invoices.any? 
    tfooter 
    tr 
     td colspan="#{checkin_action ? '10' : '9'}" Total 
     td style='text-align:right' 
     '$#{number_with_delimiter(@invoices_total)} 

這讓我在頁腳中顯示每個頁面的總數。問題是,當我點擊下一頁時,轉到下一頁,總數不會改變。如何在每次頁面更改時動態更改它。

任何想法?

+0

如何在視圖中顯示總數? –

+0

單擊其他頁面時,頁腳中顯示總數的部分不會重新加載。您需要從分頁中捕獲ajax成功並重新加載總計。 – EJ2015

+0

@CharanKumarBorra:查看我的編輯 – EastsideDeveloper

回答

0

我更新了我的答案。

無需編寫此查詢。

@invoices_total = @invoices.compact.inject(0){ |sum, invoice| sum + invoice.total } 

我給邏輯得到的@invoices總和顯示在頁面中。

#Declare a variable to store the sum of the invoices. 
<% invoices_total = 0 %> 

<% @invoices.each do |invoice|%> 
    # While looping through your invoices add invoice total to that above variable 
    <% invoices_total += invoice.total %> 
    #Rest of your code for show 
<% end %> 

#Finally the Total Sum like this 

<%= invoices_total %> 
+0

總計是發票表中的一列,並不是一個計數 – EastsideDeveloper

0

一般來說,invoices_total量不應該被改變,不管你是在什麼頁面invoices_total可以寫這樣說:

@invoices_total = Invoice.count

或者,如果總爲invoics的專欄,你可以:

@invoices_total = Invoice.pluck('total')

+0

總計不等於計數。總數是一列 – EastsideDeveloper