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.


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