我正在使用载波和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)
但是,如果我这样做,它什么也不会显示。
有帮助吗?
答案 0 :(得分:0)
是的,我已经阅读了以下教程
Image uploading using 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 %>