MediaMagick aims to make dealing with multimedia resources a very easy task – like magic. It wraps up robust solutions for upload, associate and display images, videos, audios and files to any model in your rails app.
Add this line to your application's Gemfile:
gem 'media_magick', '~> 0.4.0'
And then execute:
$ bundle
Add these lines after //= require jquery
in app/assets/javascripts/application.js
:
//= require media_magick/plupload_it
//= require media_magick/toggleSortable
class Album
include Mongoid::Document
include MediaMagick::Model
attaches_many :photos, type: :image
end
def new
@album = Album.new
end
<%= attachment_uploader(@album, :photos, :image) %>
<%= attachment_loader(@album, :photos) %>
$(document).ready(function () {
$(".attachmentUploader").pluploadIt();
});
class Album
include Mongoid::Document
include MediaMagick::Model
attaches_many :photos, type: :image, allow_videos: true
end
<%= attachment_uploader(@album, :photos, :video) %>
<%= attachment_uploader(@album, :photos, :image) %>
<%= attachment_loader(@album, :photos) %>
class Album
include Mongoid::Document
include MediaMagick::Model
attaches_many :photos, type: 'image'
end
album = Album.create
album.photos.create(photo: params[:file])
album.reload.photos.first.url
album.reload.photos.first.filename
class Album
include Mongoid::Document
include MediaMagick::Model
attaches_one :photo, type: 'image'
end
album = Album.create
album.photo.create(photo: params[:file])
album.reload.photo.url
album.reload.photo.filename
class Album
include Mongoid::Document
include MediaMagick::Model
attaches_many :photos, type: 'image' do
field :tags, type: Array
end
end
album = Album.create
album.photos.create(photo: params[:file], tags: ['ruby', 'guru'])
album.reload.photos.first.tags #=> ['ruby', 'guru']
Media Magick only supports mini_magick
. [https://github.com/minimagick/minimagick] (https://github.com/minimagick/minimagick)
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :thumb do
process :resize_to_fit => [156, 156]
end
end
class Album
include Mongoid::Document
include MediaMagick::Model
attaches_many :photos, type: 'image', uploader: PhotoUploader
end
album = Album.create
album.photos.create(photo: params[:file])
album.reload.photos.first.thumb.url
coming soon
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request