В моем приложении rails 4 я использую операторскую волну для загрузки файлов в облачное хранилище Google. Я могу успешно загружать файлы изображений, но pdf-файлы не работают. Он показывает следующую ошибку:
Вы не можете загружать файлы "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
Обновление: при тестировании на локальной машине работает, но не на героку. В среде разработки он работает без проблем, и я могу проверить файл, загруженный в хранилище Google. Но на героку выдает ошибку "Вам не разрешено загружать файлы "pdf", разрешенные типы: jpg, jpeg, gif, png"
Обновление: в моем приложении есть еще один загрузчик, ImageUploader. Когда я устанавливаю его extension_white_list так, чтобы он включал pdf, он также заставляет работать attachment_uploader. Как это происходит. Нужно ли мне иметь один и тот же extension_white_list во всех моих загрузчиках?
Заранее спасибо!
pdf
в начало списка? - person tompave   schedule 04.08.2015validates_integrity_of :attachment
и попробуйте один раз. - person Deepesh   schedule 04.08.2015