4

在我正在构建的网站的 CMS 中,我使用 Paperclip 来处理文件上传。用户可以上传图片,并且必须给每张图片一个简短的描述,然后用于命名图片(用于 SEO)和图片的 alt 标签。每个图像都被调整为多个预定义的大小并存储在 S3 上。

用户可以在许多地方使用此图像,有效地创建多种不同类型的模型,每个模型都引用一个特定的图像。

因此,鉴于我需要存储有关图像的元数据(其描述)并且我需要在多个模型之间共享单个图像,将图像封装在它自己的模型中似乎是有意义的,然后可以将其添加为任何需要它的模型的关联。该Image模型然后具有回形针的附加文件。这意味着我不需要在引用图像的任何模型上存储重复信息。

我关心的是性能之一。现在,任何图像请求都需要通过Image模型,而不是直接将 URL 作为属性访问。

这是一个明智的解决方案还是我应该以不同的方式解决这个问题?

4

1 回答 1

5

你的想法完全正确。你想要Rails 多态关联,记录在这里。实际上,图像是示例中使用的用例。

任何性能差异都可以忽略不计,并且可能比您手动推出其他解决方案更好。

于 2013-09-17T20:15:57.427 回答