Building a staging environment on Heroku is pretty straightforward, especially now they've released their new 'fork' feature.
To fork your app and ensure that all your assets, environmental variables, and Postgres databases are cloned, simply run:
heroku fork -a yourapp yourapp-staging
I also recommend automatically deploying the staging server whenever you push to master. This is convenient, as it means you have a up-to-date version of your app always running. Your can test on staging, and then deploy production a couple of times a day.
To automate staging deploys follow the instructions on the github-heroku-pusher project. A GitHub webhook POSTs to your deploy server, which will then deploy your staging environment in the background.