attachment_fu questions

I am having a hard time saving the uploaded files to the directory of my choice.

There is the method full_filename() that is said to be the one to override to specify a custom path, but when I do so the file is not saved

[code] #Here is the original method in the file_system_backend.rb file

# Overwrite this method in your model to customize the filename.         # The optional thumbnail argument will output the thumbnail's filename.         def full_filename(thumbnail = nil)           file_system_path = (thumbnail ? thumbnail_class : self).attachment_options[:path_prefix].to_s           File.join(RAILS_ROOT, file_system_path, *partitioned_path(thumbnail_name_for(thumbnail)))         end [/code]

I created a custom full_filename method in my Picture class, which was called on to generate the file name for the uploaded file, but when this method was used the file was not saved in the directory that I specified.

Here is the updated method within the Picture class

[code] def full_filename(thumbnail = nil)     file_system_path = (thumbnail ? thumbnail_class : self).attachment_options[:path_prefix].to_s     File.join(RAILS_ROOT, "pictures", thumbnail_name_for(thumbnail))   end [/code]

I admit I am a little confused on how this method overrides the the one in the file_system_backend.rb file (I will have to read up on this), but for starters I just want to figure out why the files are not saving.

There is also an issue in the thumbnails not being created. Sometimes they are created as they should be, then after testing things at a later time, they are no longer saved.

The last thing that I am wondering about, is what is the common way to relate the images/files. I would think just to create an additional foreign key column in the table relating back to the parent table, but if that is the case I would have to create a couple of methods in the parent class, in this case Member, to retrieve a list of the thumbnails. That just seems like to much extra code for ruby, so I am thinking that there may already be something that is provided that will do this.

Thanks for the help.

I am having a hard time saving the uploaded files to the directory of my choice.

attachment_fu has a :path_prefix => "/path/to/attachments/directory" option which allows you to set the directory of the uploaded files. I can't remember off hand if it allows you to store them in a directory anywhere on the file system, it may require the directory to be under /public..

There is also an issue in the thumbnails not being created. Sometimes they are created as they should be, then after testing things at a later time, they are no longer saved.

I've never had inconsistencies in saving thumbnails.. For me they either save or they don't..

The last thing that I am wondering about, is what is the common way to relate the images/files. I would think just to create an additional foreign key column in the table relating back to the parent table, but if that is the case I would have to create a couple of methods in the parent class, in this case Member, to retrieve a list of the thumbnails. That just seems like to much extra code for ruby, so I am thinking that there may already be something that is provided that will do this.

I use single table inheritance with a different class for each image type, which specifies varying dimensions for each image. A better way of doing it is to use the polymorphic associations, although the restriction of doing it this way is that you must specify all the different image dimensions in one file, so you may get some superfluous image resizes that you don't necessarily need (ie if you need an image size of 64x64 pixels for a Product and an image of 128x128 for an Article, you'll get both sizes for each object, rather than a single image for a product and a single one for an Article).

If you're interested in the polymorphic way, you should definitely check out this sample application:

http://blog.caboo.se/articles/2007/4/11/sample-rails-application

Adam