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

Dynamic options for Paperclip based on the content type

我计划使用基于内容类型的动态回形针 gem 来使用单个 table 继承。

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]

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

你可以这样做:

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。