How to generate a random string in Ruby

I’m currently generating an 8-character pseudo-random uppercase string for “A” … “Z”:

value = ""; 8.times{value  << (65 + rand(25)).chr}

but it doesn’t look clean, and it can’t be passed as an argument since it isn’t a single statement. To get a mixed-case string “a” … “z” plus “A” … “Z”, I changed it to:

value = ""; 8.times{value << ((rand(2)==1?65:97) + rand(25)).chr}

but it looks like trash.

Does anyone have a better method?