When using wildcard %d in assets path is suposed to have a random-like number between [0-3].
It works using String.hash instance method, but in ruby 1.9 this method is not returning always the same hash for the same string.
Just run "hi".hash twice in two different irb consoles. (In the same it works, I read that have some random seed...)
So in production, every server instance have a different asset number. Or with one server, every restart has a different number too.
The asset is still available but in the browser side is better to have the same asset ID because the browser can cache the asset just once and not 4 times.
I've changed this to use a String.bytes.sum instead of String.hash