[![Code Climate](https://codeclimate.com/github/startae/uploadbox.png)](https://codeclimate.com/github/startae/uploadbox) # Do not use (not yet released) ## Installation Add to Gemfile ``` gem 'uploadbox' ``` Run generators ``` rails g uploadbox:image ``` Add jquery and uploadbox to `application.js` ``` //= require jquery //= require jquery_ujs //= require uploadbox ``` Add uploadbox to `application.css` ``` /* *= require uploadbox */ ``` Migrate database ``` rake db:migrate ``` Create a development bucket on S3 Set environmet variables ``` S3_KEY=AAAA123BBBB S3_SECRET=abc123ABcEffgee122 S3_REGION=us-east-1 S3_BUCKET=uploads-development ``` Edit CORS config for the bucket ``` http://localhost:5000 GET POST PUT * ``` ## Usage Add `uploads_one` to your model ``` class Post < ActiveRecord::Base uploads_one :picture, thumb: [100, 100], regular: [600, 300], placeholder: 'default.png' end ``` If `placeholder` is set posts without uploads will render the placeholder. Empty `@post.picture.thumb` will render `app/assets/images/thumb_default.png` Add field to form ``` <%= f.uploader :picture %> ``` Attach upload on controller ``` @post.attach_picture(params[:picture_id]) ``` Show image ``` <%= img @post.picture.regular if @post.picture? %> ``` ## Recreate versions You might come to a situation where you want to retroactively change a version or add a new one. You can use the `update_#{upload_name}_versions!` method to recreate the versions from the base file. For a post with a picture: ``` Post.update_picture_versions! ``` ## Heroku Create a production bucket on S3 Don't use your development bucket ``` http://yourdomain.com GET POST PUT * ``` Set environmet variables ``` heroku config:add HEROKU_API_KEY=ab12acvc12 \ HEROKU_APP=your-app-name \ S3_KEY=AAAA123BBBB \ S3_SECRET=abc123ABcEffgee122 \ S3_REGION=us-east-1 \ S3_BUCKET=uploads-production \ ``` Add Redis ``` heroku addons:add rediscloud:20 ```