gpt4 book ai didi

ruby-on-rails - Carrierwave content_type 始终为 nil

转载 作者:行者123 更新时间:2023-12-02 08:25:14 31 4
gpt4 key购买 nike

我正在开发 Rails 3.2.9 应用程序并使用 Carrierwave 作为文件 uploader 。 Carriverwave 自述文件指出了获取正确 content_type 的方法:

  1. 将 require 'carrierwave/processing/mime_types' 添加到初始值设定项或您的上传程序。
  2. 将 CarrierWave::MimeTypes 添加到您的 uploader 。
  3. 将进程 :set_content_type 添加到您的上传者。

基于此,我的上传者如下:

# encoding: utf-8
require 'carrierwave/processing/mime_types'
class AttachmentUploader < CarrierWave::Uploader::Base
include CarrierWave::MimeTypes
storage :file
def store_dir
"#{base_store_dir}/#{model.id}"
end
process :set_content_type

end

在我的模型中,将 uploader 安装为文件:

mount_uploader :file, AttachmentUploader

但是,上传文件后我总是得到 content_type nil:

1.9.3-p327 :013 > a.file.class
=> AttachmentUploader
1.9.3-p327 :010 > a.file.file
=> #<CarrierWave::SanitizedFile:0x00000004046330 @file="uploads/course/000/000/026/attachment_file/6/myIcon.png", @original_filename=nil, @content_type=nil>

有什么建议吗?谢谢。

PS:我已经在我的 Gemfile 中添加了 gem "mime-types", "~> 1.19"

最佳答案

您需要按照此处列出的说明进行操作:https://github.com/carrierwaveuploader/carrierwave#setting-the-content-type

添加 mime-types gem,然后像这样设置您的 uploader 文件

require 'carrierwave/processing/mime_types'

class MyUploader < CarrierWave::Uploader::Base
include CarrierWave::MimeTypes

process :set_content_type
end

关于ruby-on-rails - Carrierwave content_type 始终为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877144/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com