diff options
Diffstat (limited to 'app/decorators/core/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb')
-rw-r--r-- | app/decorators/core/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/app/decorators/core/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb b/app/decorators/core/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb new file mode 100644 index 0000000..ccb483f --- /dev/null +++ b/app/decorators/core/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +# Each Spree::LineItem can have multiple subscription_line_items. This +# allows a cart to represent multiple subscriptions to the same item in +# the same order. +module SolidusSubscriptions + module Spree + module LineItem + module SubscriptionLineItemsAssociation + def self.prepended(base) + base.has_many( + :subscription_line_items, + class_name: 'SolidusSubscriptions::LineItem', + foreign_key: :spree_line_item_id, + inverse_of: :spree_line_item, + dependent: :destroy + ) + + base.accepts_nested_attributes_for :subscription_line_items + end + end + end + end +end + +Spree::LineItem.prepend(SolidusSubscriptions::Spree::LineItem::SubscriptionLineItemsAssociation) |