2012-06-17 90 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 {| X | review.send( “avg_answer#{X}”)}`

如果你预想到PARAMS传递给你的方法,你可以通过改变它: 10.times.each {|x| review.send("avg_answer#{x}",params1,params2)} OR 10.times.each {|x| review.send(:"avg_answer#{x}",params1,params2)}