2014-10-30 2 views
2

У меня возникли трудности с методом ruby ​​на моей странице показа. У меня две модели: события и платежи. Я пытаюсь показать все платежи, сделанные на конкретное событие.Ruby on Rails каждый способ.

Я использовал этот метод на моем шоу странице на моей модели событий, и я был в состоянии показать платежи в виде массива, как это ($ 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

ли 'Payment_amount' метод? –

+0

Да, похоже, что 'Payment_amount' является столбцом и доступен как метод. – Surya

ответ

1

Там еще один метод, который похож на .each, за исключением того, он также включает в себя значение индекса на каждой итерации. Он называется . Вы можете использовать его в вашем сценарии так:

<% @event.payments.each_with_index do |payment, index| %> 
    Payment <%= index + 1%>: $<%= payment.Payment_amount.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse %> 
<% end %> 

Обратите внимание на index + 1, так как массивы с нуля, и, следовательно, первый платеж будет индекс 0.

+0

Спасибо! every_with_index работал отлично! – Liliana

+0

@Liliana Awesome, рад, что у вас это работает. Не забудьте принять ответ, в зависимости от того, что лучше ответить на вопрос (зеленая галочка слева от ответа). –

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 %> 
+0

это сработало отлично !!! Огромное спасибо!! – Liliana