The default place to store attachments is in the filesystem. Files on the local filesystem can be very easily served by Apache without requiring a hit to your app. They also can be processed more easily after they‘ve been saved, as they‘re just normal files. There is one Filesystem-specific option for has_attached_file.
- path: The location of the repository of attachments on disk. This
can (and, in almost all cases, should) be coordinated with the value of the
url option to allow files to be saved into a place where Apache
can serve them without hitting your app. Defaults to
":rails_root/public/:attachment/:id/:style/:basename.:extension"
By default this places the files in the app‘s public directory which
can be served directly. If you are using capistrano for deployment, a good
idea would be to make a symlink to the capistrano-created system directory
from inside your app‘s public directory. See
Attachment::Attachment#interpolate for more information on variable
interpolaton.
:path => "/var/app/attachments/:class/:id/:style/:basename.:extension"
Methods
Public Class methods
[ show source ]
# File lib/data_base/attachment/storage.rb, line 21
21: def self.extended base
22: end
Public Instance methods
[ show source ]
# File lib/data_base/attachment/storage.rb, line 24
24: def exists?(style = default_style)
25: if original_filename
26: File.exist?(path(style))
27: else
28: false
29: end
30: end
Returns representation of the data of the file assigned to the given style, in the format most representative of the current storage.
This method is also aliased as
to_io
[ show source ]
# File lib/data_base/attachment/storage.rb, line 34
34: def to_file(style = default_style)
35: @queued_for_write[style] || (File.new(path(style), 'rb') if exists?(style))
36: end
Alias for to_file