4

私が構築しているサイトの CMS では、Paperclip を使用してファイルのアップロードを処理しています。ユーザーは画像をアップロードでき、各画像に簡単な説明を付ける必要があります。これは、画像の命名 (SEO 用) および画像の alt タグに使用されます。各画像は、いくつかの定義済みサイズにサイズ変更され、S3 に保存されます。

ユーザーは、このイメージをさまざまな場所で利用して、それぞれが特定のイメージを参照する複数の異なるタイプのモデルを効果的に作成できます。

画像に関するメタデータ (その説明) を保存する必要があり、単一の画像を複数のモデル間で共有する必要があることを考えると、画像を独自のモデルにカプセル化し、次のように追加できるようにすることは理にかなっているようです。それを必要とするモデルの関連付け。モデルには、ImagePaperclip の添付ファイルがあります。これは、画像を参照するモデルについて重複した情報を保存する必要がないことを意味します。

私の懸念は、パフォーマンスの 1 つです。URL を属性として直接ヒットするのではなく、画像リクエストはImageモデルを通過する必要があります。

これは賢明な解決策ですか、それとも別の方法でアプローチする必要がありますか?

4

1 に答える 1

5

あなたはそれを正確に考えています。ここに文書化されているRails Polymorphic Associationsが必要です。実際、この例で使用されているのは画像です。

パフォーマンスの違いはごくわずかであり、他のソリューションを手でロールする場合よりもおそらく優れています。

于 2013-09-17T20:15:57.427 に答える