Using With Rails 2.3
NOTE: RAILS 2.3 IS NOT SUPPORTED IN NEW VERSIONS OF DRAGONFLY SO PLEASE USE VERSION 0.8.2
Setting up the quick way
config/initializers/dragonfly.rb:
require 'dragonfly/rails/images'
Setting up the more explicit way
You can do the above explicitly.
config/initializers/dragonfly.rb:
require 'dragonfly'
app = Dragonfly[:images]
app.configure_with(:imagemagick)
app.configure_with(:rails)
app.define_macro(ActiveRecord::Base, :image_accessor)
environment.rb:
config.middleware.insert_after 'Rack::Lock', 'Dragonfly::Middleware', :images, '/media'
config.middleware.insert_before 'Dragonfly::Middleware', 'Rack::Cache', {
:verbose => true,
:metastore => "file:#{Rails.root}/tmp/dragonfly/cache/meta",
:entitystore => "file:#{Rails.root}/tmp/dragonfly/cache/body"
}
Gems
environment.rb
config.gem 'dragonfly', '0.8.2'
config.gem 'rack-cache', :lib => 'rack/cache'
Capistrano
If using Capistrano with the above, you probably will want to keep the cache between deploys, so in deploy.rb:
namespace :dragonfly do
desc "Symlink the Rack::Cache files"
task :symlink, :roles => [:app] do
run "mkdir -p #{shared_path}/tmp/dragonfly && ln -nfs #{shared_path}/tmp/dragonfly #{release_path}/tmp/dragonfly"
end
end
after 'deploy:update_code', 'dragonfly:symlink'
Use it!
To see what you can do with the model accessors, see Models.