我在显示页面上遇到了ruby方法的问题。我有两种模式:事件和付款。我试图显示对特定事件的所有付款。
我在我的活动模型的节目页面上使用了这种方法,我能够以这样的数组格式显示付款($ 1000 $ 4000 $ 2000)
<strong>Payments Made: </strong>
<% @event.payments.each do |p| %>
$<%= p.Payment_amount.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse %>
<% end %>
我想要的是显示这样的付款:
付款1:1000美元 付款2:4000美元 付款3:2000美元
我很感激帮助。提前致谢。
答案 0 :(得分:2)
你可以试试这个:
<strong>Payments Made: </strong>
<% @event.payments.each_with_index do |p, i| %>
Payment <%= i+1 %>: $<%= p.Payment_amount.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse %>
<% end %>
答案 1 :(得分:1)
还有另一种类似于.each
的方法,除了它还包括每次迭代时的索引值。它被称为each_with_index
。您可以在场景中使用它,如下所示:
<% @event.payments.each_with_index do |payment, index| %>
Payment <%= index + 1%>: $<%= payment.Payment_amount.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse %>
<% end %>
请注意index + 1
,因为数组是从零开始的,因此第一笔付款将是索引0.