Paperclip的动态选项基于内容类型

时间:2016-10-26 21:39:44

标签: ruby-on-rails ruby-on-rails-3.2 paperclip

我打算使用基于内容类型动态的Paperclip gem来使用单表继承。

class Document < ActiveRecord::Base
    has_attached_file :file, photo_options #if content type is an image
    has_attached_file :file, pdf_options #if content type is a pdf file
end

class Photo < Document
    # photo specific code
end

class Pdf < Document
    # pdf specific code
end

是否可以根据内容类型使has_attached_file动态化?一个用例是在尝试从文件表单上传创建Document的新实例时:

@document = Document.new params[:document]

我希望我的问题有道理。感谢。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

class Document < ActiveRecord::Base
end

class Photo < Document
  has_attached_file :file, photo_options #if content type is an image
  # photo specific code
end

class Pdf < Document
  has_attached_file :file, pdf_options #if content type is a pdf file
  # pdf specific code
end

class DocumentsController < ApplicationController
  #Assuming is the new method.
  def new
     @document = params[:document_type].classify.safe_constantize.new
  end
end

在表单中使用@document。