ruby-on-rails - Rails 5 CarrierWave Gem 已投入生产,但尚未开发
问题描述
宝石和红宝石版本
红宝石'2.5.3'、'rails'、'~> 5.2.1'、'carrierwave'、'~> 1.2'、'>= 1.2.3'
当我在本地开发环境中上传图像时,我没有收到任何错误,也没有上传图像,但是我在生产环境中的同一个应用程序会按应有的方式上传图像。我仔细检查了我的设置,看不到任何不合适的地方,而且它在生产中工作的事实让我感到困惑。
image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def default_url(*args)
"/images/fallback/" + [version_name, "default.png"].compact.join('_')
end
version :thumb do
process resize_to_fill: [500, 350]
end
def extension_whitelist
%w(jpg jpeg gif png pdf)
end
end
团队.rb
class Team < ApplicationRecord
...
mount_uploader :image, ImageUploader
...
end
团队控制器.rb
class TeamsController < ApplicationController
...
def team_params
params.require(:team).permit(:name, :title, :phone, :email, :bio, :image, :slug)
end
end
团队/_form.html.erb
<%= form_with(model: team, local: true) do |form| %>
...
<div class="form-group clearfix">
<div class="col-md-12">
<%= form.file_field :image %>
<div style="max-width: 300px">
<% if @team.image_url %>
<h5>Current Image</h5>
<%= link_to @team do %>
<figure>
<%= image_tag @team.image_url %>
</figure>
<% end %>
<% end %>
</div>
</div>
</div>
...
<% end %>
解决方案
您可以设置一个初始化程序来检查开发过程中的错误:
config/initializers/carrierwave.rb
CarrierWave.configure do |config|
config.ignore_integrity_errors = false
config.ignore_processing_errors = false
config.ignore_download_errors = false
end
推荐阅读
- julia - 如何在 Julia 中使用未注册的包?
- python - django 2.2.5 URL 路径中的 URL 正则表达式
- java - VSCode、Java、Spring Boot 和 Maven - 未读取环境变量
- javascript - 如何在传奇中使用警报,将其挂起,并且仅在按下按钮时才继续?
- typescript - 如何使用打字稿禁用nativescript中的多个按钮
- ios - Apple Receipt Validation 返回没有 latest_receipt_info 字段的收据
- arduino - 如何使用模拟值制作 HIGH LOW 循环
- sql - 用于匹配并返回所有出现的搜索字符串的 SQL 查询
- scala - 我需要使用 ThreadPoolTaskSupport 吗?
- java - 生成 ConstraintViolationException 的 @Transient 属性