Sha256: 7e57903da836e30362e45e555bd00a6c59cf51672c07f666ef15e5ff590c1f36

Contents?: true

Size: 916 Bytes

Versions: 1

Compression:

Stored size: 916 Bytes

Contents

module Gemgento

  # @author Gemgento LLC
  class ProductAttributeValue < ActiveRecord::Base
    include Gemgento::ProductTouches

    belongs_to :product
    belongs_to :product_attribute
    belongs_to :store
    belongs_to :product_attribute_option,
               ->(join_or_model) {
                 if join_or_model.is_a? ProductAttributeValue
                   where(product_attribute_id: join_or_model.product_attribute_id)
                 else
                   where('gemgento_product_attribute_options.product_attribute_id = gemgento_product_attribute_values.product_attribute_id')
                 end
               },
               foreign_key: 'value',
               primary_key: 'value'

    default_scope -> { includes(:product_attribute) }

    validates :product, :product_attribute, :store, presence: true
    validates :product_attribute, uniqueness: { scope: [:product, :store] }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gemgento-2.8.0 app/models/gemgento/product_attribute_value.rb