2016-09-20 80 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