Sha256: cdd41f28301e89534824c860d5fed6e0e8354b4ae06d87d79158110560931253

Contents?: true

Size: 594 Bytes

Versions: 34

Compression:

Stored size: 594 Bytes

Contents

# frozen_string_literal: true

module Spree
  class Taxonomy < Spree::Base
    acts_as_list

    validates :name, presence: true

    has_many :taxons, inverse_of: :taxonomy
    has_one :root, -> { where parent_id: nil }, class_name: "Spree::Taxon", dependent: :destroy

    after_save :set_name

    default_scope -> { order(position: :asc) }

    private

    def set_name
      if root
        root.update_columns(
          name: name,
          updated_at: Time.current
        )
      else
        self.root = Spree::Taxon.create!(taxonomy_id: id, name: name)
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
solidus_core-2.8.6 app/models/spree/taxonomy.rb
solidus_core-2.6.6 app/models/spree/taxonomy.rb
solidus_core-2.7.4 app/models/spree/taxonomy.rb
solidus_core-2.8.5 app/models/spree/taxonomy.rb
solidus_core-2.7.3 app/models/spree/taxonomy.rb
solidus_core-2.6.5 app/models/spree/taxonomy.rb
solidus_core-2.8.4 app/models/spree/taxonomy.rb
solidus_core-2.8.3 app/models/spree/taxonomy.rb
solidus_core-2.7.2 app/models/spree/taxonomy.rb
solidus_core-2.6.4 app/models/spree/taxonomy.rb
solidus_core-2.8.2 app/models/spree/taxonomy.rb
solidus_core-2.8.1 app/models/spree/taxonomy.rb
solidus_core-2.6.3 app/models/spree/taxonomy.rb
solidus_core-2.8.0 app/models/spree/taxonomy.rb
solidus_core-2.7.1 app/models/spree/taxonomy.rb
solidus_core-2.6.2 app/models/spree/taxonomy.rb
solidus_core_devise_token_auth-2.8.0.alpha.14 app/models/spree/taxonomy.rb
solidus_core_devise_token_auth-2.8.0.alpha.13 app/models/spree/taxonomy.rb
solidus_core_devise_token_auth-2.8.0.alpha.12 app/models/spree/taxonomy.rb
solidus_core_devise_token_auth-2.8.0.alpha.11 app/models/spree/taxonomy.rb