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)
我更新了我的答案。
无需编写此查询。
@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 %>
答案 1 :(得分:0)
一般情况下,无论您在哪个页面,都不应更改invoices_total
金额。invoices_total
可以这样写:
@invoices_total = Invoice.count
如果total是invoics的列,您可以:
@invoices_total = Invoice.pluck('total')