Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何对Carrierwave上传器进行子类化?_Ruby On Rails_Carrierwave - Fatal编程技术网

Ruby on rails 如何对Carrierwave上传器进行子类化?

Ruby on rails 如何对Carrierwave上传器进行子类化?,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,我有两个上传器: 及 但是,当我使用AmbianceUploader上传东西时,将不会创建ImageUploader中定义的版本。我该怎么做 附言: 因此,版本就在那里,只是出于某种原因而不受关注…如果您运行AmbianceImageUploader.versions是那些从父版本中列出的:header version?它们似乎都在那里:[2]prymain>AmbianceImageUploader.versions=>{:xlarge=>{:uploader=>,:options=>{},

我有两个上传器:

但是,当我使用AmbianceUploader上传东西时,将不会创建ImageUploader中定义的版本。我该怎么做

附言:


因此,版本就在那里,只是出于某种原因而不受关注…

如果您运行AmbianceImageUploader.versions是那些从父版本中列出的:header version?它们似乎都在那里:[2]prymain>AmbianceImageUploader.versions=>{:xlarge=>{:uploader=>,:options=>{},:large=>{:uploader=>,:options=>{},:medium=>{:uploader=>,:options=>{},:small=>{:uploader=>,:options=>{},:xsmall=>{:uploader=>,:options=>{},:header=>{:uploader=>,:options=>{}}。。。更神秘的是。。。
class ImageUploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick
  include Sprockets::Helpers::RailsHelper
  include Sprockets::Helpers::IsolatedHelper
  storage :file

  def store_dir
    "images/#{model.class.to_s.underscore}/#{model.slug}"
  end

  def default_url
    asset_path("fallback/" + [version_name, "image.jpg"].compact.join('_'))
  end

  def self.get_width(span)
    grid_column_width = 110
    grid_gutter_width = 10
    return grid_column_width if span <= 0 or span > 8
    (span*grid_column_width) + ((span>1 ? span-1 : 0)*grid_gutter_width)
  end

  def self.get_height(width)
    ratio = 180/150
    width/ratio
  end

  def self.dims(span)
    width = get_width(span)
    [width, get_height(width)]
  end

  version :xlarge do
    process :resize_to_limit => dims(8)
    process :convert => :jpg
  end

  version :large do
    process :resize_to_limit => dims(4)
    process :convert => :jpg
  end

  version :medium do
    process :resize_to_limit => dims(2)
    process :convert => :jpg
  end

  version :small do
    process :resize_to_limit => dims(1)
    process :convert => :jpg
  end

  version :xsmall do
    process :resize_to_limit => dims(0.5)
    process :convert => :jpg
  end

  def extension_white_list
    %w(jpg jpeg gif png tiff tif)
  end

  def filename
    "image.jpg" if original_filename
  end

end
class AmbianceImageUploader < ImageUploader
  version :header do
    process :resize_to_fill => [get_width(6), 350+10]
    process :convert => :jpg
  end

  def filename
    "ambiance.jpg" if original_filename
  end

end
[2] pry(main)> AmbianceImageUploader.versions
=> {:xlarge=>{:uploader=>#<Class:0x007fde61b5b520>, :options=>{}},
 :large=>{:uploader=>#<Class:0x007fde61f90500>, :options=>{}},
 :medium=>{:uploader=>#<Class:0x007fde5ee166c8>, :options=>{}},
 :small=>{:uploader=>#<Class:0x007fde5ec492c8>, :options=>{}},
 :xsmall=>{:uploader=>#<Class:0x007fde5d8687b8>, :options=>{}},
 :header=>{:uploader=>#<Class:0x007fde61ac1808>, :options=>{}}}