【问题标题】:rails + paperclip: Is a generic "Attachment" model a good idea?rails + paperclip:通用的“附件”模型是个好主意吗?
【发布时间】:2010-04-29 15:10:01
【问题描述】:

在我的应用程序中,我有几个带有附件的东西,使用 paperclip

  • 客户只有一个徽标。
  • 商店可以有一张或多张图片。这些图片,除此之外,还可以有其他 拍摄日期等信息。
  • 产品可以有一张或多张图片,分类(从字体,从 返回等)。

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

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

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

我正在考虑重构我的代码,以便拥有一个通用的“附件”模型。所以任何型号都可以has_many :attachments.

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

【问题讨论】:

    标签: ruby-on-rails paperclip


    【解决方案1】:

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

    一种允许更大灵活性的混合方法是创建一个基于 STI 的附件表,方法是包含一个“类型”列并创建特定于用途的子类,例如定义特定样式的 ProductAttachment。

    【讨论】:

    • 感谢您的回答。由于某些地方需要额外的字段,我最终没有进行重构。进行 STI 会有所帮助,但所涉及的工作并不值得。
    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 2011-05-14
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多