Problem
You have upgraded to rails 3.1.x, 3.2.x and you want capistrano to automatically precompile your assets and do the deployment in your various deployment environments (staging. production, demo etc).
Solution
First add a new directory in your server’s shared folder named assets
mkdir /path/to_your_shared_folder/assets
Then add the following line to your Capfile:
load 'deploy/assets'
And finally have your deploy environment file (deploy/staging.rb | deploy/prodution.rb) as follows:
set :rvm_ruby_string, '1.9.3-p125'
set :rvm_type, :user
set :rvm_bin_path, "$HOME/.rvm/bin"
# Add RVM's lib directory to the load path.
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
# Load RVM's capistrano plugin
require "rvm/capistrano"
server 'xxx.xxx.xxx.xxx', :app, :web, :db, :primary => true
set :rails_env, :staging
after "deploy:update_code", :precompile_assets
desc "precompile the assets"
task :precompile_assets, :roles => :app do
run "cd #{release_path} && RAILS_ENV=#{rails_env} bundle exec rake assets:precompile"
end