範囲内で数値を操作するための、よりRubyらしくてクリーンな方法はありますか? 上限に達すると、次の数値は再び 1 になります。16 月と 28 月を強制的に 4 月にする (16-12=4) などのアルゴリズムでよく見られます。
ケース: 12 個の画像と N 個の質問があります。各質問は次の画像を取得します。すべての画像が「使用」されている場合は、画像 1 から再開する必要があります。
def image_rotation(number) {
uplim = 12
return number if number <= uplim
return image_rotation(number - uplim) if number > uplim
}
questions.each_with_index do |q,i|
img = File::join("images", "image-#{image_rotation(i+1)}.jpg")
end
注:私はこの(一種の)問題の用語に精通していないため、stackoverflow を検索しても結果やヒントは得られませんでした。しかし、この質問が重複していないとはまだ信じられません。キーワード、回答/重複、またはお気軽に回答してください:)
ワンライナーのボーナスポイント。これは ERB ファイルで必要なので、コードをクリーンで明確かつシンプルに保つことができれば、そこで完全に解決することを好みます。