如何在rails上的ruby中的.each do循环的索引上执行mod和case?

时间:2011-02-27 17:01:16

标签: ruby-on-rails indexing case

这是我的概念,我希望得到一些建议:

我有一系列通过searchlogic生成的联系人,例如:

contacts = Contacts.date_due_is(Date.today)

这些联系人通过Prawn输出到四张明信片上,每个“象限”中有一个联系人 - 比如I,II,III和IV。

当我循环时,我需要知道放置它的象限。我认为最好的方法是能够执行索引值mod,然后case文本输出,但不知道如何执行此操作。

索引不是整个Contacts数据库中的联系人,而是使用each-do循环的数组。

我想做的就是相当于这个(概念上,但找不到代码的例子):

i = contact.index(其中contact.index可以是contacts数组中的0,1,2等。

quad = mod(i / 4) - 可能的输出为0,1,2或3(或类似的东西)。

案例四:

0:然后在左上角输出 1:然后在左下方输出 2:然后在右上角输出 3:然后在右下方输出

问题:

1)我怎么能在轨道上的ruby中做到这一点?

2)还有其他推荐吗?

谢谢大家!

1 个答案:

答案 0 :(得分:4)

或许你需要Enumerable#each_with_index吗?

http://www.ruby-doc.org/core/classes/Enumerable.html#M001511

contacts.each_with_index do |contact, idx|
  quad = idx%4
end