[英]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.