2010-11-29 6 views
0

すでに別のページや異なる向きでアップロードした写真を再利用できるようにしたいので、それぞれに複数のレコードを作成する必要がありますデータベース内の写真。私は、ユーザーが1つのインスタンスを削除しても、すべてのインスタンスが削除されてからファイルが削除されるまで、写真はそのまま残ります。ペーパークリップで写真を複数回使用してすべてのインスタンスが削除された場合にのみ削除する方法

ペーパークリップではどのような方法が最適ですか?

+0

明確にしてください。 – Shreyas

答えて

1

写真をいくつかのページでのみ使用したいが、違う方法ではない、つまりペーパークリップに異なるスタイル設定を使用しない場合は、写真ごとに1つのレコードを作成し、それをhas_manyで他のレコードに関連付けます。協会を通じて。そうすれば、途中のモデルに破壊時に写真記録を呼び出して写真に残っている他の団体があるかどうかを確認することができます。

しかし、少なくとも現在のモデルの構造と関連付けやユーザーの操作の例を見なければ、特定するのは非常に難しいです。

いずれの場合でも、実際には2つの別のクリップクリップレコードがファイルシステム上の全く同じファイルを指していることはお勧めしません。

編集:

それはあなたが新しいレコードを作成するときに、あなたは常に元のファイルを使用することができないようにしたい、実際のアップロードがある場合:

@first_photo = Photo.find(1) 

@new_photo = Photo.new 
@new_photo.attachment = @first_photo.attachment 
@new_photo.save 
写真はまだ、すべてのために一度格納される

インスタンスはアップロードされません。

+0

私は2番目のケースが欲しいです。私の写真モデルには、写真が存在するページIDに加えて、写真のx、y、幅、高さが含まれています。だから私は、異なるx、y、幅、高さの異なるレコードに写真を複数回アップロードする必要はありませんでした。 – Tam

関連する問題