随着“CarrierWave::MimeTypes”的弃用,上传者应如何处理/覆盖通用内容类型?

2024-01-07

Problem

CarrierWave::MimeTypes,其中添加了set_content_type上传者的方法已被弃用。除其他事项外,这个方法 https://github.com/carrierwaveuploader/carrierwave/blob/v0.10.0/lib/carrierwave/processing/mime_types.rb#L61如果给定的内容类型是通用的(或者application/octet-stream or binary/octet-stream).

The 弃用消息 https://github.com/carrierwaveuploader/carrierwave/blob/v0.10.0/lib/carrierwave/processing/mime_types.rb#L30 for CarrierWave::MimeTypes says:

直接从 SanitizedFile 对象获取 content_type

但是,如果定义了该类,则无论它是否是通用的,该类始终返回现有的内容类型。请参阅此处的代码 https://github.com/carrierwaveuploader/carrierwave/blob/v0.10.0/lib/carrierwave/sanitized_file.rb#L246.

目前的解决方案

目前,我们通过清除内容类型(如果它是泛型类型)并让库正确检测它来手动处理此问题。我们可以通过调用来自行设置::MIME::Types.type_for然而,我们正在尝试尽可能保持我们的代码兼容升级。

问题/tl;博士

是否有处理通用内容类型的 CarrierWave 上传的最佳实践(application/octet-stream) 现在CarrierWave::MimeTypes已弃用?


对于那些在我们有更好的方案之前就到达这里的人来说,我们现有的解决方案如下:

# we replicate this idea of generic types from CarrierWave::MimeTypes
GENERIC_CONTENT_TYPES = %w[application/octet-stream binary/octet-stream]

# and add a clearing method to our uploader processor
process :clear_generic_content_type

def clear_generic_content_type
  file.content_type = nil if GENERIC_CONTENT_TYPES.include?(file.try(:content_type))
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随着“CarrierWave::MimeTypes”的弃用,上传者应如何处理/覆盖通用内容类型? 的相关文章

  • 如何使用康康康舞?

    我想向我的 Rails 应用程序中的用户授予权限 我有 管理员 可以创建 更新和删除所有帖子和评论 用户 只能创建和更新自己的评论 访客 则不能执行这些操作 为此 我使用宝石 devise 和 cancancan 我理解 devise 宝石
  • 如何测试 before_filter 是否与 Rails 中的 RSpec 一起正常工作

    我有一个check user access control我的 ApplicationController 中的 before filter 在允许登录用户通过之前检查其角色和权限 我正在尝试对其进行一些测试 但找不到好的方法 对于简单的索
  • 在虾中使用列表

    我使用 prawn 创建 pdf 文件 其中包含大量表格格式的数据和一些列表 列表的问题在于 我只是使用文本作为列表 因为没有与 ul gt li 列表等效的语义 就像我在 webfrointend 中使用它们一样 所以这些清单是不合理的
  • 配置 session_store.rb 来处理登台和生产?

    我的 Rails 3 1rc6 应用程序上有一个使用子域的暂存和生产环境 我为这些环境购买并配置了不同的域名 因为默认的 some something herokuapp com 不能很好地与子域配合 当我将 session store r
  • 如何在Rails中显示URL指向的图像

    我这里有一张图片http power itp ac cn jmyang funny fun4 jpg http power itp ac cn jmyang funny fun4 jpg我想在我的 Rails 站点中显示它 我该怎么做 您还
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • jruby-openssl 中已初始化常量

    当在 Torquebox 上运行我的 Rails 应用程序时 我得到了很多 already initialized constant 警告源自gems jruby openssl 0 8 2 lib shared jruby openssl
  • 在 Rails 中从注册表单创建 Devise 用户时如何创建另一个对象?

    我的系统中有不同类型的用户 比方说 其中一种是设计师 class Designer lt ActiveRecord Base attr accessible user id portfolio id some designer specif
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • before_filter set_locale 除了控制器

    My routes rb MyApp Application routes draw do scope locale do all resources here end namespace blog do resources posts o
  • 尝试安装 Rails 时,执行 gem ... (Gem::RemoteFetcher::FetchError) 503 错误

    这是当我尝试使用 Ruby 2 1 1 和 RVM 执行 gem install Rails v 4 1 0 时出现的错误 错误 执行 gem 时 Gem RemoteFetcher FetchError 错误 响应服务不可用 503 ht
  • 设计没有路由与指定删除的链接中的 [GET]“/users/sign_out”匹配

    因此 我四处寻找解决此问题的方法 大多数人似乎都说了同样的话 但对解决我的问题没有多大作用 我已在链接中指定了删除方法 但路由错误表明这是一个 GET 请求 知道为什么下面的链接最终会覆盖 忽略方法声明吗 Routes devise for
  • 如何防止Rails“复数”列名?

    我正在使用 dwilkie 的外国人 http github com dwilkie foreignerRails 插件 我有一个表创建语句 如下所示 create table agents games force gt true id g
  • 我可以使用 ActiveRecord 与 Hstore 中的字段的关系吗?

    我可以使用 hstore 哈希中的字段通过活动记录 own to 将一个模型与另一个模型绑定吗 我将详细说明 我有一个用户模型 它根据权限通过 STI 在其字段之一上子类化为许多不同的其他用户模型 class User lt ActiveR
  • 找不到关联,Rails 3

    class Membership lt ActiveRecord Base belongs to role belongs to user end class User lt ActiveRecord Base has many roles
  • 如何在 Rails 中对不同用户建模

    Question 我有一个带有内置授权和身份验证逻辑的用户模型 现在我意识到我拥有三种不同类型的用户 我想存储每个人的不同信息 Rails 中处理这个问题的最佳方法是什么 基于当前阅读的想法 我看过 STI 但从我读到的内容来看 它是不合适
  • 如何在Rails 中使用highlight.js?

    我正在尝试在我的 Rails 应用程序中使用语法突出显示和highlight js height js 的说明如下 https github com isagalaev highlight js https github com isaga
  • 加载新的 Turbo Frame 时如何执行 JavaScript

    我在 Rails 应用程序中使用 Turbo Frames 并且在每个页面上都有
  • 通过sprocket动态渲染sass文件

    我想从助手那里渲染一些变量 scss erb模板使用了image url 萨斯函数 template scss erb background image image url 到目前为止 ERB 部分很简单 利用这个堆栈溢出答案 https
  • Heroku 带宽和空间

    Heroku 对于免费应用程序支持多少流量带宽和磁盘空间 Heroku 免费版有一个 5 MB 的数据库和 1 个 dyno dyno 是运行并响应请求的应用程序的实例 此外 您的 slug 的大小有 100 MB 的限制 这包括您使用的所

随机推荐