Ruby on Rails每个都做方法。

时间:2014-10-30 19:16:08

标签: ruby-on-rails ruby methods

我在显示页面上遇到了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美元

我很感激帮助。提前致谢。

2 个答案:

答案 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.