Sha256: 7bfdb8608f86fed4680d3f5bea675ceeaccc29c847a74d6d00e8f60177c39878
Contents?: true
Size: 903 Bytes
Versions: 1
Compression:
Stored size: 903 Bytes
Contents
Spree::Product.class_eval do def option_values @_option_values ||= Spree::OptionValue.for_product(self).sort_by {|ov| ov.option_type.position } end def grouped_option_values @_grouped_option_values ||= option_values.group_by(&:option_type) end def variants_for_option_value(value) @_variant_option_values ||= variants.includes(:option_values).all @_variant_option_values.select { |i| i.option_value_ids.include?(value.id) } end def variant_options_hash return @_variant_options_hash if @_variant_options_hash hash = {} variants.includes(:option_values).each do |variant| variant.option_values.each do |ov| otid = ov.option_type_id.to_s ovid = ov.id.to_s hash[otid] ||= {} hash[otid][ovid] ||= {} hash[otid][ovid][variant.id.to_s] = variant.to_hash end end @_variant_options_hash = hash end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spree_variant_options-0.4.1 | app/models/spree/product_decorator.rb |