HTML5 File uploader for rails
This gem use https://github.com/blueimp/jQuery-File-Upload for upload files.
mount Uploader::Engine => '/uploader'
Architecture to store uploaded files (cancan integration):
class Asset < ActiveRecord::Base include Uploader::Asset def uploader_create(params, request = nil) ability = Ability.new(request.env['warden'].user) if ability.can? :create, self self.user = request.env['warden'].user super else errors.add(:id, :access_denied) end end def uploader_destroy(params, request = nil) ability = Ability.new(request.env['warden'].user) if ability.can? :delete, self super else errors.add(:id, :access_denied) end end end class Picture < Asset mount_uploader :data, PictureUploader validates_integrity_of :data validates_filesize_of :data, :maximum => 2.megabytes.to_i end
For example user has one picture:
class User < ActiveRecord::Base has_one :picture, :as => :assetable, :dependent => :destroy fileuploads :picture end
Find asset by foreign key or guid:
@user.fileupload_asset(:picture)
//= require uploader/application
*= require uploader/application
<%= uploader_field_tag :article, :photo %>
<%= form.uploader_field :photo %>
<%= f.input :picture, :as => :uploader %>
<%= f.input :picture, :as => :uploader %>