靴、色、サイズの 3 つの基本モデルがあります。
靴には多くの色とサイズがありますが、色ごとに available_sizes があります。
これを実行できるようにするには、shoe_id と color_id の両方を見て、トリプル ジョイント モデルでそれらに従って size_ids をフェッチする必要があります。
反対の条件 (available_colors) も存在します。
次に、モデルは次のようになります。
class Shoe < ActiveRecord::Base
has_many :stocks
has_many :colors, through: :stocks
has_many :sizes, through: :stocks
end
class Color < ActiveRecord::Base
has_many :stocks
has_many :shoes, through: :stocks
end
class Size < ActiveRecord::Base
has_many :stocks
has_many :shoes, through: :stocks
end
class Stock < ActiveRecord::Base
belongs_to :shoe
belongs_to :color
belongs_to :size
end
私が欲しいのは、shoe.sizes.availabe_colors
orのようなものを照会することshoe.colors.available_sizes
です。
すべての靴、色、およびサイズのモデルをうまく連携させるには、どのように関連付けを実装すればよいですか?