Crimagify
Manage your model images with RMagick and CarrierWave.
Installation
-
Add to your Gemfile:
gem 'crimagify'
-
Run
Bundle
-
Execute:
rails generate crimagify:install
-
Run migrations:
rake db:migrate
-
Run seeds:
rake db:seed
Implementation
Add to your routes.rb: mount Crimagify::Engine => "/crimagify", :as => "crimagify"
Add to your model:
...
extend Crimagify::DinamicImageMethods
has_many :crimagify_images, :as => :parent, :dependent => :destroy, :class_name => Crimagify::Image
build_methods_images
...
Add to your controller:
...
#For Action Create:
if @object.save
Crimagify::ImageFunctions::create_new_images(@object, params)
end
...
...
#For Action Update:
id @object.update_attributes(params[:object])
Crimagify::ImageFunctions::update_images(@object, params)
end
...
Add to application.js://= require crimagify/application
Edit the file generated for the gem: config/crimagify_versions.yml, with the specific format mantaining the same ratio for all versions in each blocks, adding models that use images:
User:
imgA:
user:
width: 100
height: 100
big:
width: 500
height: 500
imgB:
big:
width: 800
height: 500
small:
width: 400
height: 250
Product:
imgA:
big:
width: 600
height: 300
Add to your form view:
<%= form_for(@object) do |f| %>
...
<%= images_id(@object) %>
<%= image_cropper(@object, { image_name: "imgA", ratio: :big}) %> #The attributes "imgA" and :big or :small are defined
<%= image_cropper(@object, { image_name: "imgB", ratio: :small}) %> #into file config/crimagify_versions.yml generated for the gem
...
<% end %>