使用循环计数修改ruby中的变量名

时间:2012-06-17 08:39:24

标签: ruby-on-rails ruby

我想通过以下循环输出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",但当然不行。

谢谢!

2 个答案:

答案 0 :(得分:1)

有效吗?

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

答案 1 :(得分: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)}  或10.times.each {|x| review.send(:"avg_answer#{x}",params1,params2)}