ヨージとプログラミング

プログラミング勉強の記録

【Rails5】SpreeおよびSolidusの仕組みメモ(執筆中)

公式ドキュメントより 「あるproductは最低1つのSpree::OptionTypeを持つ必要あり」
→しかしproductモデルにはSpree::OptionTypeの外部キーなし。中間テーブルSpree::ProductOptionTypeを通して保有していると思われる。 例)複数の色を提供したければ、"Color" option typeを作る必要あり。

「あるOption Typeは、最低1つのSpree::OptionValueと連携している必要がある。」
例)"Color" option typeが100以上のoption valueを持つこともありうる。
→ Spree::OptionValueがSpree::OptionTypeの外部キーをもつ。

Variantの使用

「master variantのみの場合、master variantがLineItemとつながる。」
「複数のvariantをもつ場合、master variantがLineItemに情報を与えることはない。(masterを買い物カゴにいれることが不可)」

variantのメソッド variatn.options_text: amount_stock_items(variant): variant.stock_items variant.option_value("tshirt-size") @variant.display_price

productメソッド product.master.id: product.display_price: product.images.first.attachment(:product): image.attachment(:product) image.attachment(:large)