2012-06-17 7 views
0

Я хотел бы иметь review.avg_answer2, review.avg_answer3 и т.д., выдаваемого по следующей петле:Использование счетчика цикла, чтобы изменить имя переменной в рубин

<% @count = 1 %> 
    <% 10.times do |x| %> 
    <td><%= link_to review.avg_answer1.to_i, "#" %></td> 
    <% @count += 1 %> 
    <% end %> 

Я знаю, что есть простой ответ, но это не так ударив меня.

Я пробовал "review.avg_answer#{@count}.to_i", но, конечно, он не работает.

Спасибо!

ответ

1

Это работает?

review.send("avg_answer#{@count}").to_i 
+0

Спасибо, что было легко! – Abram

0

Это должно работать для вас дела ..
10.times.each {|x| review.send("avg_answer#{x}")} OR 10.times.each {| х | review.send (: "avg_answer # {х}")} `

Если вы видите, чтобы передать Params в ваш метод, то вы можете изменить его с помощью: 10.times.each {|x| review.send("avg_answer#{x}",params1,params2)} ИЛИ 10.times.each {|x| review.send(:"avg_answer#{x}",params1,params2)}

Смежные вопросы