Arrayをシャッフルしようと下記のようなコードを書いてみました。
class Array
def shuffle!
size.downto(1) { |n| push delete_at(rand(n)) }
self
end
end
ところが、これを rails で動かそうとすると、ArgumentErrorが発生してなぜか動かない。
調べてみると、このファイルを発見。
activesupport-2.0.2/lib/active_support/core_ext/array/random_access.rb
ActiveSupportが、配列の要素にランダムにアクセスするメソッドを追加していました。
おいおい・・・
class Array
def shuffle!
size.downto(1) { |n| push delete_at(Kernel.rand(n)) }
self
end
end