2012-02-20 17 views
1

私は、アセットクラスがポリモーフィックである画像のアップロードを処理するためにクリップを使用しています。すべてのファイルが単一のディレクトリにダンプされないように、ファイルへのパスにglobal_idという値を追加します。アセットを持つオブジェクトのそれぞれは一意のglobal_idを持ち、クリップを補間することでこれを処理する必要があります。paperclip - ポリモーフィック関係の反対側のオブジェクトのglobal_idを取得

class Asset < ActiveRecord::Base 
    belongs_to :assetable, :polymorphic => true 

    Paperclip.interpolates :global_path do |attachment, style| 
    # ??? 
    object.global_id 
    end 

    has_attached_file :asset, 
    :hash_secret => "jtsomething", 
    #:url => "/images/:global_path/:hash_:basename_:style.:extension", 
    :path => UPLOAD_PATH + "/:global_path/:hash_:basename_:style.:extension", 
    :styles => { :medium => "200x200>", :thumb => "75x75>" 
} 

この関係の相手側のglobal_idにはどうすればアクセスできますか?あなたは、モデルのインスタンスから、assetableアクセサと、他のすべての関係のような関係の反対側にアクセスすることができます

THX

答えて

0

:あなたはあなたのグローバルIDを保存することを想定し

Paperclip.interpolates :global_path do |attachment, style| 
    attachment.instance.assetable.global_id 
end 

オブジェクトのglobal_idフィールド、またはそのモデルにメソッドがあることglobal_id

関連する問題