compactはnilを消した配列を返してくれる関数です。
userName = ["foo", "bar", "foobar", nil] p userName.compact => ["foo", "bar", "foobar"]
これを使うと、ファイル名を作製したい場合に少しだけ幸せになれます。
userName = ["foo", "bar", "foobar", nil] num = 0 for i in userName do puts [i,"#{Time.now.strftime("%y%m%d%H%M%S")}", "#{num}"].join("_") + ".jpg" num += 1 end => foo_120905130823_0.jpg => bar_120905130823_1.jpg => foobar_120905130823_2.jpg => _120905130823_3.jpg num = 0 for i in userName do puts [i,"#{Time.now.strftime("%y%m%d%H%M%S")}", "#{num}"].compact.join("_") + ".jpg" num += 1 end => foo_120905130823_0.jpg => bar_120905130823_1.jpg => foobar_120905130823_2.jpg => 120905130823_3.jpg
このように、nilが格納された場合無視してくれるので、頭にかっこ悪い"_"が入りません。