Ruby on Rails / Paperclip Gem: не изменяет размеры изображений, кажется, сохраняет только «оригинальное» изображение - PullRequest
1 голос
/ 15 февраля 2011

У меня установлен драгоценный камень.Он используется в другом месте, поэтому я знаю, что он работает.

У меня есть модель,

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

Я создал свои столбцы

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

сделал грабли,

rake db:migrate

У меня есть "{: multipart => true}" в моей форме

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

И я пытаюсь извлечь информацию об изображении вот так:

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

Это будет работать только когда я использую "@ slide.image.url", но это показывает только оригинальную фотографию.

Я посмотрел в public / system / images / и, похоже, сохраняет только оригинал /но не большой /, средний / или маленький /.Я проверил журналы ошибок и ничего.

Я часами начинаю изучать RoR, так что прости мое невежество.

Ответы [ 3 ]

3 голосов
/ 15 февраля 2011

Это :style**s** => { ... }, а не :style => ... (дополнительные s!)

0 голосов
/ 17 апреля 2013

Я попробовал следующий способ.Работает нормально.Я надеюсь, что это кому-нибудь поможет.

1.добавить следующий гем в Gemfile:

gem "ImageResize", "~> 0.0.5"

2.run bundle

3.используйте это в функции контроллера:

require 'rubygems'
require 'ImageResize'

#input_image_filename, output_image_filename, max_width, max_height
Image.resize('big.jpg', 'small.jpg', 40, 40)
0 голосов
/ 01 июня 2011

Вы просто забыли указать размер photo @slide.image.url(:small), @slide.image.url(:medium), @slide.image.url(:large)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...