无法在Heroku上使用carrierwave上传PDF?

时间:2015-08-04 07:32:38

标签: ruby-on-rails pdf heroku carrierwave ruby-on-rails-4.2

在我的rails 4应用程序中,我使用carrierwave将文件上传到谷歌云存储。我能够成功上传图像文件,但pdfs不能正常工作。它显示以下错误:

您不能上传“pdf”文件,允许的类型:jpg,jpeg,gif,png

这是我的上传者: -

# encoding: utf-8
require 'carrierwave/processing/mime_types'
class AttachmentUploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick
  include CarrierWave::MimeTypes

  storage :fog

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

  process :set_content_type

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

end

我不知道这段代码有什么问题。

这是附件模型

class Attachment < ActiveRecord::Base
  mount_uploader :attachment, AttachmentUploader

  # Associations

  belongs_to :attached_item, polymorphic: true

  # Validations

  validates_presence_of :attachment
  validates_integrity_of :attachment

  # Callbacks

  before_save :update_attachment_attributes

  # Delegate

  delegate :url, :size, :path, to: :attachment

  # Virtual attributes

  alias_attribute :filename, :original_filename

  private

  def update_attachment_attributes
    if attachment.present? && attachment_changed?
      self.original_filename = attachment.file.original_filename
      self.content_type = attachment.file.content_type
    end
  end
end

更新: 在本地计算机上进行测试时,它可以正常运行在开发环境中它没有问题,我可以检查上传到谷歌存储的文件。但是在heroku上显示错误“你不允许上传”pdf“文件,允许的类型:jpg,jpeg,gif,png”

更新: 我的应用中还有另一个上传器,ImageUploader。当我将其extension_white_list设置为包含pdf时,它也使attachment_uploader工作。怎么样?我需要在所有上传者中使用相同的extension_white_list吗?

提前致谢!

0 个答案:

没有答案