Cant get attachment_fu to store files outside of RAILS_ROOT

I am trying to get attachment_fu to store files in a separate
directory tree, so that when I use Capistrano to update the site the
‘public/files’ directory doesnt get left behind, thus losing the
previously uploaded files.

So I have redefined full_filename from attachment_fu to use ‘/usr/home/
sitename/files’ as the tree root, then the model may add
a :path_prefix.

But it doesnt seem to work… I say seem because attachment_fu IS
putting the file somewhere, as I can get it back on the display
page…but where it is going is a mystery.

The files are NOT in public/* nor are they in /usr/home/sitename/files/

I have tried putting the full_filename rewrite in both the model
rfc.rb (which seems to be the logical place) and alternately in the
appropriate controller i.e. rfc_controller.rb

I am still quite a newbie so me understanding what to test from the
console is approaching zero.

Am I approaching this from the correct direction, or is there some
other method to use?


personally I always symlink the directories the files are uploaded to
from my current, to my shared with an after_update_code (adjust for

task :after_update_code do
%w{avatars logo polaroids}.each do |share|
run “ln -nfs #{shared_path}/#{share} #{release_path}/public/images/
run “ln -nfs #{shared_path}/db/production.sqlite3 #{release_path}/db/
run “ln -nfs #{shared_path}/index #{release_path}/index”

like that. I read this in a blog post somewhere, so credit is not

Imho, this is a better solution than uploading outside RAILS_ROOT,
since it also works in dev and is much less hackish.


I used a capistrano recipie to copy the uploaded files out of my
before updating the code then copied them all back afterwards.