在我的应用程序中,我有几件带有附件的东西,使用 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/