Ruby on rails 如何在Rails视图中循环3个值

Ruby on rails 如何在Rails视图中循环3个值,ruby-on-rails,ruby,loops,Ruby On Rails,Ruby,Loops,有没有更好的方法来做到这一点: row_bg_color_group = row_bg_color_group == 1 ? 2 : row_bg_color_group == 2 ? 3 : 1 理想情况下 row_bg_color_group = (1,2,3).cycle 每次通过较大的循环,都会使用下一个值 请注意,这是作为不同组大小的一部分有条件地执行的,例如 1111 1111 1111 2222 3333 3333 3333 333 不只是 111 222 333 111

有没有更好的方法来做到这一点:

row_bg_color_group = row_bg_color_group == 1 ? 2 : row_bg_color_group == 2 ? 3 : 1
理想情况下

row_bg_color_group = (1,2,3).cycle 
每次通过较大的循环,都会使用下一个值

请注意,这是作为不同组大小的一部分有条件地执行的,例如

1111
1111
1111
2222
3333
3333
3333
333
不只是

111
222
333
111
222
333
111
222
333

可以使用模运算符:

row_bg_color_group = ((row_bg_color_group + 1) % 3) + 1
我不知道您的情况,但如果您可以使用编号为0到2的组,而不是编号为1到3的组,则这看起来更干净一些

row_bg_color_group = (row_bg_color_group + 1) % 3

可以使用模运算符:

row_bg_color_group = ((row_bg_color_group + 1) % 3) + 1
我不知道您的情况,但如果您可以使用编号为0到2的组,而不是编号为1到3的组,则这看起来更干净一些

row_bg_color_group = (row_bg_color_group + 1) % 3
Rails中有一个循环。因此,您可以:

row_bg_color_group = cycle(1,2,3)
如果您需要有多个循环,可以为它们命名:

row_bg_color_group = cycle(1,2,3, :name => "row_bg_color_group")
然后它们就不会冲突了。

Rails中有一个循环。因此,您可以:

row_bg_color_group = cycle(1,2,3)
如果您需要有多个循环,可以为它们命名:

row_bg_color_group = cycle(1,2,3, :name => "row_bg_color_group")

然后它们就不会冲突。

一个有用的答案+1,尽管我发现循环方法更可读。一个有用的答案+1,尽管我发现循环方法更可读。