载波,MiniMagick和调整图像大小

时间:2018-08-17 17:58:39

标签: ruby-on-rails carrierwave image-uploading minimagick

我正在尝试为网站制作一个简单的RSS /博客供稿。我想为封面照片提供一个简单的上传器,该上传器将显示在标题左侧的Feed中,并带有博客文章的更多阅读链接。我认为在图像上传器文件中,如果包含mini_magick,则可以使用不同版本的图像上传方法,例如version:medium do等。无论出于什么原因,提交表单后,它只会在浏览器中引发错误,这根本没有帮助。当我在上传器文件中删除version:medium do方法时,图像会像正常情况一样上载,但是很小,我真的很想调整其大小。

class ImageUploader < CarrierWave::Uploader::Base

include CarrierWave::MiniMagick
  storage :fog

  version :medium do
      process resize_to_fit: [250, 250]
  end

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

class HomeBlog < ApplicationRecord
  has_many :upvotes
  mount_uploader :image, ImageUploader
end

<%= tinymce_assets %>
<%= simple_form_for(@admin_home_blog) do |f| %>
  <%= f.error_notification %>
  <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>

  <div>
    <h3>Upload a Cover Photo</h3>
    <%= f.file_field :image %>
    <%= f.hidden_field :image_cache %>
  </div>
  <div class="form-inputs">
    <span class="form_labels"><%= f.input :name %></span>
    <%= f.text_area :entry, :class => "tinymce", :rows => 20, :cols => 120 %>
  </div>

  <div class="form-actions">
    <%= f.button :submit, "Create Blog Post" %>
  </div>
<% end %>
<%= tinymce %>

谁能看到什么问题?我还在带有载波和雾的gemfile中安装了gem'mini_magick'。

2 个答案:

答案 0 :(得分:0)

我的声誉还不够高,无法简单地发表评论,但是尝试一下。

class ImageUploader < CarrierWave::Uploader::Base

include CarrierWave::MiniMagick
  storage :fog

  # move this line outside of your method
  process resize_to_fit: [512,512]         

  version :medium do

      # change the word 'fit' to 'fill'
      process resize_to_fill: [250,250]
  end

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_white_list
    %w(jpg jpeg gif png)
  end
end

从我所看到的一切以及我成功的经验来看,只是将大小调整为FIT(在使用每种照片尺寸方法之前),然后将所有不同照片尺寸的大小调整为FILL。祝你好运!

答案 1 :(得分:0)

如果您被卡住了,并且在使用载波或回形针的情况下无法使Mini_Magick正常工作,并且只想像我一样将尺寸调整为更大的图像?简单的在线样式就足够了。不要在上传器文件中浪费太多时间处理版本废话。也许有些人没有问题,或者他们已经破解了代码。猜猜我很特别。