2

以下のコードでオプション ハッシュを動的に渡すにはどうすればよいですか?

class Resource < ActiveRecord::Base
    belongs_to :attachable, :polymorphic => true

    has_attached_file :attachment #, paperclip_options from attachable

end


class ItemTypeOne < ActiveRecord::Base
    has_many :resources, :as => :attachable, :dependent => :destroy

    def paperclip_options
        ITEM_TYPE_ONE_OPTIONS
    end
end

class ItemTypeTwo < ActiveRecord::Base
    has_many :resources, :as => :attachable, :dependent => :destroy

    def paperclip_options
        ITEM_TYPE_TWO_OPTIONS
    end
end

2 つの異なるモデルがあります (上記のコードでは ItemTypeOne と ItemTypeTwo と呼ばれています)。これら 2 つのモデルには、まったく異なるペーパークリップ ストレージ オプション (スタイル、パスなど) があります。

4

2 に答える 2

0

こんな感じになると思います

class Resource < ActiveRecord::Base
    belongs_to :attachable, :polymorphic => true

    has_attached_file :attachment, attachment_options

    def attachment_options
      attachable.paperclip_options
    end
end

私は実行していますが、このコードはテストしていません。それが役に立ったかどうか教えてください。

おそらく、ポリモーフィックな関係でオブジェクトの型を検査するクラス メソッドを記述し、その型に基づいてオプションを渡す必要があります。

于 2013-10-15T22:36:05.040 に答える