私は自分のサイト用のフォト ギャラリー システムを自分で構築しましたが、Flickr とほぼ 1 対 1 で関連付けられています。これ自体は大きな問題ではありませんが、少しリファクタリングしたいと思います。試行することは、いくつかの既存のモデルを 1 つに折りたたむことができるかどうかを確認することです。
現在、私は次のモデルを持っています:
Collection
Album
Photo
Photo-size
それぞれの完全な関連付けは次のとおりです。
Collection
has_many :children, class_name: "Collection", foreign_key: "parent_id"
belongs_to :parent, class_name: "Collection", foreign_key: "parent_id"
has_many :albums
Album
has_many :photos, :dependent => :destroy
belongs_to :collection
Photo
belongs_to :album
has_many :photo_sizes, :dependent => :destroy
Photo_size
belongs_to :photo
それはすべてうまくいきますが、ここにいる人々から、私がこれについてどうすべきかについてあなたの意見を見つけてもらいたいと思います.
たとえば、(とにかく) 私の頭の中では、Collections を Albums に折りたたんでから、Photo_sizes を Photos に折りたたむことができるようです。
私が混乱しているのは、アルバムが子アルバムを持つことができる必要があるため、マージされたコレクション/アルバムモデルで関係がどのように機能するかということです。写真。
他のアルバムを含むアルバムにも写真はありません。したがって、いずれかのアルバムには、子供のアルバムまたは写真のセットがあります。
これについてどうすればよいかについて何か考えはありますか?