My problem is similar to:
I am using attachment_fu to allows users to upload their own images.
However I want to store them outside of my applications root. Then,
when I ‘cap deploy’, I wont wipe them all. I can then
use :after_update_code to set a symlink and just update that with each
Does anyone know of a solution?
Rails seems to always look inside ‘public/images’ and I know that you
can use the plugin ‘multi-asset-locations’ to set a particular
asset_host for images but I didn’t quite understand how:
:images => “http://images.domain.com”
relates to a particular folder on the site??
Any nods in the right direction would be much appreciated.
What we did is wrote a simple controller that handles the mechanics
of reading a binary file and pumping it out as the response.
asset = FileAsset.find(params[:id])
disposition = ‘attachment’
if asset.mime_type == ‘image/x-png’ or
asset.mime_type == ‘image/gif’ or asset.mime_type == ‘image/jpeg’ :
disposition = ‘inline’
send_file asset.file_path, :type =>
asset.mime_type, :disposition => disposition
Just for other people suffering the same problem. I used a hack in the
end to copy all the images from a folder in my application to one
outside the application. THEN updated the code, THEN copied it back.
All done using capistrano tasks:
task :before_deploy do
run “cp -r /home/domainName/appName/current/trunk/public/
task :after_deploy, :roles => [:app, :db, :web] do
run “cp -r /home/domainName/image_backup/* /home/domainName/appName/
run “rm -rf /home/domainName/image_backup/*”
Hope someone finds that useful.