After my BA added “My Test Project” to production, I wanted to try to prevent this kind of behavior in the future. I added “Environment: Development” in the header of the layout. This was nice, but it was so subtle, I wouldn’t think it would prevent you from making the same mistake. So, I had the visual designer create 3 separate background images for Development, Staging and Production (well this one was already there). I then conditionally modified the style in the application layout head section:
<head>
<style type=”text/css”>
<% if RAILS_ENV == ‘development’ %>
body { background-image: url(/images/bkgrnd_dev.gif); }
<% elsif RAILS_ENV == ‘staging’ %>
body { background-image: url(/images/bkgrnd_staging.gif); }
<% end %>
</style>
</head>
Now, whenever I am in development I can clearly tell. Staging also looks different. So now, it’s really easy to tell that you are in production, right before you add some crappy test data.

I couldn’t agree more. We had massive problems with clients confusing their dev and production CMSs at my last job. We eventually settled on a MASSIVE fixed position flashing animated gif banner at the top of the layout for dev sites. It worked.
[...] Visually Indicate Develpmont Vs. Production Environments [...]