9

私が持っているポリモーフィックな関連付けについて少し混乱しています。ヘッダー画像と多くの画像を持つ記事モデルが必要ですが、単一の画像モデルが必要です。さらにややこしいことに、Image モデルは多態的です (他のリソースが多くの画像を持つことができるようにするため)。

Article モデルでこの関連付けを使用しています。

class Article < ActiveRecord::Base
  has_one :header_image, :as => :imageable
  has_many :images, :as => :imageable
end

これは可能ですか?ありがとう。

4

2 に答える 2

7

これを試しましたが、header_imageは画像の1つを返します。画像テーブルで別の画像使用タイプ(header_imageと通常の画像)が指定されていないという理由だけで。それは単に言う:imageable_type=両方の使用のための画像。したがって、使用タイプに関する情報が保存されていない場合、ActiveRecordは区別できません。

于 2009-11-19T15:31:32.060 に答える
4

うん。それは完全に可能です。

header_imageのクラス名は推測できないため、指定する必要がある場合があります。:dependent => :destroy記事が削除された場合に画像が確実に破棄されるように、これも含めます

class Article < ActiveRecord::Base
  has_one :header_image, :as => :imageable, :class_name => 'Image', :dependent => :destroy
  has_many :images, :as => :imageable, :dependent => :destroy
end

それから反対側に...

class Image < ActiveRecord::Base
  belongs_to :imageable, :polymorphic => true
end
于 2009-07-23T00:17:47.127 に答える