Enumerator 関連のメソッドをうまく使うと、簡単にコードを書くことができると思います
ruby
1# [1, 2, 3] をnext メソッドで順繰りに取り出せる
2cycler = [*(1..3)].cycle # splat operator でrange を展開
3# => #<Enumerator: [1, 2, 3]:cycle>
4
5# この例では、配列をDB から引っ張ってくるデータの代用として使う
6# 実際は User.all を用いる?
7users = [*(1..15)].shuffle
8
9# 素朴に書く
10users.each do |user|
11 puts "cycle: #{cycler.next}, user: #{user}"
12 # =>
13 # cycle: 1, user: 2
14 # cycle: 2, user: 5
15 # cycle: 3, user: 15
16 # cycle: 1, user: 4
17 # cycle: 2, user: 8
18 # ...
19end
質問として Rails タグが見られるので、コントローラとビューが連携できるよう、以下のように書いてみてもいいでしょう
ruby
1# コントローラ側で、ビューにデータを渡す想定
2@users_with_cycle_id =
3 users.map do |user|
4 [cycler.next, user]
5 end
6
7# ビュー側で、渡されたデータを使う
8@users_with_cycle_id.each do |id, user|
9 # 実際にはERB 構文で書く
10 # <%= ID: #{id}, User Info: #{user} %>
11 puts "ID: #{id}, User Info: #{user}"
12end
何か参考になれば幸いです
Links
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。