在我的应用程序上,我使用paperclip有几处带有附件的东西。

  • 客户有一个徽标。
  • 商店可以有一张或多张图片。这些图片,此外,可以有其他
    信息,例如拍摄日期。
  • 产品可以包含一张或多张图片,并根据字体,
    等等)。

  • 目前,我的每个模型都有其自己的“回形针字段”(客户端has_attached_file)或具有附加文件的has_many模型(Store has_many StorePictures,Product has_many ProductPictures)

    我的客户还告诉我,将来我们可能会在系统中添加更多附件(即供客户下载的pdf文档)。

    我的应用程序具有使用declarative_authorization实现的相当复杂的授权系统。例如,一个人不能从他不允许“看”的产品中下载图片。

    我正在考虑重构代码,以便可以使用通用的“附件”模型。因此,任何模型都可以has_many :attachments

    在这种情况下,听起来是个好主意吗?还是应该继续制作Foos和FooPictures?

    最佳答案

    我发现,通常情况下,与各种其他类型的记录上的独立附件相比,通用附件类要容易得多。简单附件方法的唯一缺点是,同时为所有可能的附件定义了需要生成的缩略图,而不是逐案定义。

    允许更大灵活性的一种混合方法是通过包括“类型”列并创建特定于用户的子类(例如定义特定样式的ProductAttachment)来创建基于STI的附件表。

    关于ruby-on-rails - 滑轨+回形针: Is a generic “Attachment” model a good idea?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2738452/

    10-11 08:13