При загрузке изображения с помощью carrierwave и dropzone, сделайте уменьшенную версию - PullRequest
0 голосов
/ 14 декабря 2018

Я использую carrierwave и dropzone для загрузки некоторых фотографий в альбом.

Все работает нормально, за исключением того, что, когда я добавляю новое изображение в альбом, он перерисовывает файл без размера миниатюры.

Мой контроллер выглядит так:

class MediaContentsController < ApplicationController

  def index
    @media_contents = Media.all
  end

  def create
    @media = Media.new(file_name: params[:file])
    @album = Album.find(params[:album])
    @media.album = @album
    if @media.save!
      render json: @media
    else
      render json: { error: 'Failed to process' }, status: 422
    end
  end
end


class MediaUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

   version :thumb do
     process :resize_to_fill => [50, 50]
   end
end

И на мой взгляд:

<% if media_contents.empty? %>
  <h5 id="no-media">No Media Found</h5>
<% else %>
  <% media_contents.each do |media| %>
    <div class="col-4">
      <div class="thumbnail">
        <%= image_tag media.file_name_url(:thumb) %>
        <div class="caption">
          <p>
            <%= check_box_tag 'media_contents[]', media.id %>
          </p>
        </div>
      </div>
    </div>
  <% end %>
<% end %>

Итак, на мой взгляд, изображение показывается в полном размере (нев миниатюре).Я подозреваю об этой строке:

 render json: @media

Я уже пытаюсь сделать

render json: @media.file_name_url(:thumb)

Но если я делаю это, то это вообще ничего не показывает.

Любая помощь?

1 Ответ

0 голосов
/ 14 декабря 2018

Да, я прошел учебник ниже

Загрузка изображений с использованием carrierwave

Это работает для меня, просто попробуйте изменить свой взгляд на что-то подобное

<% if media_contents.empty? %>
  <h5 id="no-media">No Media Found</h5>
<% else %>
  <% media_contents.each do |media| %>
    <div class="col-4">
      <div class="thumbnail">
        <%= image_tag media.thumb.url %>
        <div class="caption">
          <p>
            <%= check_box_tag 'media_contents[]', media.id %>
          </p>
        </div>
      </div>
    </div>
  <% end %>
<% end %>
...