2013-01-08 1 views
16

私はこのような二つのモデルがあります: - カード - -ruby​​はあるモデルから別のモデルにクリップクリップをコピーしますか?

モデル1は、ユーザ - - フロントページ
添付ファイル名= cardimage
モデル2のための関心のデータの表現を含むユーザー
添付ファイル名が含まれています=アバター

作成時に!新しいカード、私はユーザーモデルからのアバターを新しいカードイメージとしてカードモデルにコピーしたい。

これには単純なライナーはありますか?

のRuby/Railsの/ペーパークリップ

+0

可能な複製http://stackoverflow.com/questions/2739839/how-to-copy-a-file-using-paperclip – cih

+1

添付ファイルを2回保管する必要がありますか?ユーザーモデルがカードモデルに関連付けられている場合は、重複を避けることができます。 – cih

+0

その例は、あるユーザープロファイルから別のユーザープロファイルへのコピーです。必要なのは、画像を別のモデルにコピーすることです。 – Gary

答えて

31

これはトリックを行う必要がありますモデルが関連付けられている場合、私はカードを作成し、コントローラのアクションでそれをやって推薦されていない場合、あなたは、after_createコールバックを使用することができます。

instance_of_model_one.cardimage = instance_of_model_two.avatar 
instance_of_model_one.save 
+0

これは正しく動作します。最初はファイル名で試してみましたが、方法は正しいです、クリップは残りの部分をきれいに扱います。正しいIDなどありがとう。 – Gary

+0

プロンプトはありません。喜んで助けてください。 – cih

+0

あなたは 'instance_of_model_two.avatar.dup'が必要だと思います –

2
old_avatar = model1.avatar; 
model2.avatar.create(attachment: old_avatar.attachment); 
model2.save; 

それは私のために働きました。