- Add it to your Gemfile and run
gem 'rails_admin' # Because rails_admin_jcrop autoload modules by checking plugins you use, it's # recommended to require it explictly before rails_admin_jcrop # e.g. if you use carrierwave # gem 'carrierwave', :require => 'carrierwave' gem 'rails_admin_jcrop' #, git: 'git://github.com/janx/rails_admin_jcrop.git'
- Configure your model field to use Jcrop:
# RAILS_ROOT/config/initializers/rails_admin.rb config.model User do configure :avatar, :jcrop # Below is optional edit do field :avatar do jcrop_options aspectRatio: 500.0/320.0 end end end
- If you use Paperclip, you need to do nothing here, rails_admin_jcrop will append RailsAdminJcropper processor to your attachment automatically. If CarrierWave is used, please invoke :rails_admin_crop in your uploader:
class AvatarUploader < CarrierWave::Uploader::Base version :thumb do process :rails_admin_crop process :resize_to_fill: [500,320] end end
- Crop is done when you successfully return from the modal box, you don't need to save the whole record.
- If you don't see the cropped image on rails admin edit page, the browser is possibly displaying cached version. Try refresh your browser.
rails_admin_jcrop >= 1.0.0works with
rails_admin ~> 0.3.x. For older rails_admin, use rails_admin_jcrop 0.2.1.
You can pass any Jcrop plugin allowed options here, for example, use
aspectRatio to fix the ratio of selection box:
field :avatar do jcrop_options aspectRatio: 500.0/320.0 end
Please check Jcrop document for more available options.
By default, image is scaled properly to make cropping more easy, but sometimes the image is still too large to fit in the modal window, you may need to scroll image up/down to crop. If you set
fit_image to true, image will always be resized to fit in modal window.
field :avatar do fit_image true end
Check screenshots below to see the difference:
fit_image is false (default)
fit_image is true
Localize the crop form by adding these entries:
zh: admin: actions: crop: title: '剪裁' menu: '剪裁'
- MRI 1.9.3 (All above 1.8.6 should work, I only tested on 1.9.3)
- Rails 3.x
- make sure rails_admin_jcrop load after paperclip/carrierwave load
- automate :rails_admin_crop for CarrierWave uploader
Any help is encouraged. Here are some ways you can contribute:
- by using it
- by telling people
- by reporting bugs or suggesting new features on github issue tracker
- by fixing bugs or implementing features
Life is easier with you.