繁体   English   中英

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

[英]Using loop count to modify variable name in 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"但是当然不起作用。

谢谢!

它行得通吗?

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

这应该适合您的情况。
10.times.each {|x| review.send("avg_answer#{x}")} OR 10.times.each {|x| review.send("avg_answer#{x}")} OR每个{| 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)}或10次。 10.times.each {|x| review.send(:"avg_answer#{x}",params1,params2)} 10.times.each {|x| review.send(:"avg_answer#{x}",params1,params2)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM