# Cant get attachment\_fu to store files outside of RAILS\_ROOT

**URL:** <https://www.ruby-forum.com/t/cant-get-attachment-fu-to-store-files-outside-of-rails-root/109805>\
**Category:** Rails\
**Created:** [July 19, 2007, 7:15am UTC](https://www.ruby-forum.com/t/cant-get-attachment-fu-to-store-files-outside-of-rails-root/109805 "2007-07-19T07:15:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mjt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea5d25/32.png) [@mjt](https://www.ruby-forum.com/u/mjt)\
**Post date:** [July 19, 2007, 7:15am UTC](https://www.ruby-forum.com/t/cant-get-attachment-fu-to-store-files-outside-of-rails-root/109805/1 "2007-07-19T07:15:34Z")

</div>

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?

mjt

---

<div class="post-metadata">

**Author:** ![mjt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea5d25/32.png) [@mjt](https://www.ruby-forum.com/u/mjt)\
**Post date:** [July 19, 2007, 9:12am UTC](https://www.ruby-forum.com/t/cant-get-attachment-fu-to-store-files-outside-of-rails-root/109805/2 "2007-07-19T09:12:46Z")

</div>

hi,  
personally I always symlink the directories the files are uploaded to  
from my current, to my shared with an after\_update\_code (adjust for  
cap2):

task :after\_update\_code do  
%w{avatars logo polaroids}.each do |share|  
run “ln -nfs #{shared\_path}/#{share} #{release\_path}/public/images/  
#{share}”  
end  
run “ln -nfs #{shared\_path}/db/production.sqlite3 #{release\_path}/db/  
production.sqlite3”  
run “ln -nfs #{shared\_path}/index #{release\_path}/index”  
end

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

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

/Jonas

---

<div class="post-metadata">

**Author:** ![mjt](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea5d25/32.png) [@mjt](https://www.ruby-forum.com/u/mjt)\
**Post date:** [August 17, 2007, 8:35pm UTC](https://www.ruby-forum.com/t/cant-get-attachment-fu-to-store-files-outside-of-rails-root/109805/3 "2007-08-17T20:35:27Z")

</div>

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

see:  
[http://groups.google.co.uk/group/rubyonrails-talk/browse\_thread/thread/8bf142e132dcf0f4/902e96d5120b1ec3?hl=en](http://groups.google.co.uk/group/rubyonrails-talk/browse_thread/thread/8bf142e132dcf0f4/902e96d5120b1ec3?hl=en)
