Folders and files outside of ROOT

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 => “
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.

def get_asset
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/
image_uploads/* /home/domainName/image_backup/”

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.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs