ruby-on-rails - rails + 回形针 : Is a generic "Attachment" model a good idea?

标签 ruby-on-rails paperclip

在我的应用程序中,我有几件带有附件的东西,使用 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 - rails + 回形针 : Is a generic "Attachment" model a good idea?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738452/

    相关文章:

    ruby-on-rails - accepts_nested_attributes_for 不保存回形针图像

    ruby-on-rails - Rails paperclip amazon aws s3 gem,如何更改图片网址?

    ruby-on-rails - 上传响应式背景图片

    ruby-on-rails - factory_girl transient 属性的未定义方法

    ruby-on-rails - 'identify'命令无法识别图像文件。 (heroku)

    ruby-on-rails - 在 ruby​​ on rails 中将表单渲染到不同文件夹中的两个部分?

    ruby-on-rails - 从应用程序获取消息 : Invalid option key: raise_on_unfiltered_parameters= (RuntimeError) error while running production mode?

    ruby-on-rails - 回形针:尝试上传 .gpx 文件的内容类型欺骗

    ruby-on-rails - 回形针::NotIdentifiedByImageMagickError in Spree::Admin::ImagesController#create

    ruby-on-rails - 没有为测试环境设置 ENV 变量