Sha256: 5b655d198d48b2ae37c7d0fc526e805c5e9b397764f60c12a280bd1cb1b27407

Contents?: true

Size: 644 Bytes

Versions: 136

Compression:

Stored size: 644 Bytes

Contents

module Spree
  class Property < Spree::Base
    has_many :property_prototypes, class_name: 'Spree::PropertyPrototype'
    has_many :prototypes, through: :property_prototypes, class_name: 'Spree::Prototype'

    has_many :product_properties, dependent: :delete_all, inverse_of: :property
    has_many :products, through: :product_properties

    validates :name, :presentation, presence: true

    scope :sorted, -> { order(:name) }

    after_touch :touch_all_products

    self.whitelisted_ransackable_attributes = ['presentation']

    private

    def touch_all_products
      products.update_all(updated_at: Time.current)
    end
  end
end

Version data entries

136 entries across 136 versions & 2 rubygems

Version Path
goca-spree-core-3.1.14.rails.5.0.1 app/models/spree/property.rb
goca-spree-core-3.1.14.rails.5.0 app/models/spree/property.rb
goca-spree-core-3.1.15.rails.5.0 app/models/spree/property.rb
goca-spree-core-3.1.15.pre.rails.pre.5.0 app/models/spree/property.rb
spree_core-4.0.9 app/models/spree/property.rb
spree_core-4.1.15 app/models/spree/property.rb
spree_core-4.2.7 app/models/spree/property.rb
spree_core-4.2.6 app/models/spree/property.rb
spree_core-4.2.5 app/models/spree/property.rb
spree_core-4.1.14 app/models/spree/property.rb
spree_core-4.0.8 app/models/spree/property.rb
spree_core-4.2.4 app/models/spree/property.rb
spree_core-3.7.14.1 app/models/spree/property.rb
spree_core-4.2.3.1 app/models/spree/property.rb
spree_core-4.1.13.1 app/models/spree/property.rb
spree_core-4.0.7.1 app/models/spree/property.rb
spree_core-4.2.3 app/models/spree/property.rb
spree_core-4.2.2 app/models/spree/property.rb
spree_core-4.2.1 app/models/spree/property.rb
spree_core-4.0.7 app/models/spree/property.rb