我打算使用基于内容类型动态的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]
我希望我的问题有道理。感谢。
答案 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。