Rails 5 Carrierwave Uploader undefined方法`to_sym'为[:photo_one,:photo_two,:photo_three]:数组你的意思是? to_s to_yaml to_set

时间:2017-10-23 18:06:54

标签: ruby-on-rails ruby ruby-on-rails-5 carrierwave

我的模型有三列我用于图像和文档上传。我正在使用Rails 5.1.4Carrierwave 1.0。我不希望单个列接受多个上传作为数组,所以我决定只有三个单独的上传选项,并尝试使用相同的上传器。

我一直为[:photo_one,:photo_two,:photo_three]获取undefined method to_sym':数组您的意思是? to_s to_yaml to_set`错误,似乎无法在数小时的搜索后弄明白。我确实感觉我的上传器是错误的,但我目前的知识水平使得很难确定。

模型/ plaqueorder.rb

class Plaqueorder < ApplicationRecord
  mount_uploader [:photo_one, :photo_two, :photo_three], DocumentUploader
  belongs_to :user
end

上传/ document_uploader.rb

class DocumentUploader < CarrierWave::Uploader::Base
  storage :file

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

  version :thumb do
    process resize_to_fit: [100, 50]
  end

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

1 个答案:

答案 0 :(得分:1)

您需要分别为每个字段定义上传器。如果您将浏览mount_uploader sources,您将看到不支持的colums数组