【问题标题】:Rails 5 Carrierwave Uploader undefined method `to_sym' for [:photo_one, :photo_two, :photo_three]:Array Did you mean? to_s to_yaml to_setRails 5 Carrierwave Uploader undefined method `to_sym' for [:photo_one, :photo_two, :photo_three]:Array 你的意思是? to_s to_yaml to_set
【发布时间】:2017-10-23 18:06:53
【问题描述】:

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

我不断收到 [:photo_one, :photo_two, :photo_three]:Array 的 undefined methodto_sym' 你的意思是? to_s to_yaml to_set` 错误,经过数小时的搜索似乎无法弄清楚。我确实感觉我的上传者错了,但我目前的知识水平很难确定。

models/plaqueorder.rb

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

uploaders/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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-02-12
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    相关资源
    最近更新 更多