2011-02-14 2 views
1

J'ai la gemme trombone installée. Il est utilisé ailleurs, donc je sais que ça fonctionne.Rubis on Rails/Paperclip Gem: Ne redimensionne pas les images, semble ne sauvegarder que l'image 'originale'

J'ai mon modèle,

class Slide < ActiveRecord::Base 
has_attached_file :image, :style => { 
    :large => "1400x786!", 
    :medium => "128x128>", 
    :small => "105x90!" 
} 
end 

J'ai créé mes colonnes

class AddImageToSlides < ActiveRecord::Migration 
    def self.up 
    add_column :slides, :image_file_name,  :string 
    add_column :slides, :image_content_type, :string 
    add_column :slides, :image_file_size,  :interger 
    add_column :slides, :image_updated_at,  :datetime 
    end 

    def self.down 
    remove_column :slides, :image_file_name 
    remove_column :slides, :image_content_type 
    remove_column :slides, :image_file_size 
    remove_column :slides, :image_updated_at 
    end 
end 

fait mon ratissage,

rake db:migrate 

J'ai "{: multipart => true}" dans ma forme

<%= form_for(@slide, :class=>"slidesForm", :html => { :multipart => true }) do |f| %> 

Et je suis en train de tirer l'info d'image comme si,

<div class="slidesPreview" style="background:url('<%= @slide.image.url(:large) %>') top left no-repeat;"> 

Il ne fonctionnera que quand je l'utilise « @ slide.image.url », mais qui ne montre que la photo originale.

J'ai regardé dans le public/système/images/et il semble enregistrer seulement original/mais pas grand /, moyen/ou petit /. J'ai vérifié les journaux d'erreurs et rien.

Je suis des heures nouvelles dans l'apprentissage RoR alors pardonnez mon ignorance.

Répondre

3

Il est :style**s** => { ... }, pas :style => ... (le s supplémentaire!)

0

vous avez simplement oublié de préciser la taille de la photo @slide.image.url(:small), @slide.image.url(:medium), @slide.image.url(:large)

+2

S'il vous plaît lire la question dans son intégralité. OP a utilisé la notation .url (: size). –

0

J'ai essayé comme suit. Cela fonctionne bien. J'espère que cela aidera quelqu'un.

1.Add bijou suivant Gemfile:

gem "ImageResize", "~> 0.0.5" 

2.run bundle

3.Utilisez cela en fonction du contrôleur:

require 'rubygems' 
require 'ImageResize' 

#input_image_filename, output_image_filename, max_width, max_height 
Image.resize('big.jpg', 'small.jpg', 40, 40) 
Questions connexes