Sha256: 0153c95390711e6000e37bbcffa28872d7674153ea6aee60d4f202edc043ef6e

Contents?: true

Size: 595 Bytes

Versions: 49

Compression:

Stored size: 595 Bytes

Contents

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_create :set_root
    after_save :set_root_taxon_name

    default_scope { order("#{self.table_name}.position, #{self.table_name}.created_at") }

    private
      def set_root
        self.root ||= Taxon.create!(taxonomy_id: id, name: name)
      end

      def set_root_taxon_name
        root.update_attributes(name: name)
      end
  end
end

Version data entries

49 entries across 49 versions & 2 rubygems

Version Path
goca-spree-core-3.1.14.rails.5.0 app/models/spree/taxonomy.rb
goca-spree-core-3.1.15.rails.5.0 app/models/spree/taxonomy.rb
goca-spree-core-3.1.15.pre.rails.pre.5.0 app/models/spree/taxonomy.rb
spree_core-3.2.9 app/models/spree/taxonomy.rb
spree_core-3.1.14 app/models/spree/taxonomy.rb
spree_core-3.2.8 app/models/spree/taxonomy.rb
spree_core-3.1.13 app/models/spree/taxonomy.rb
spree_core-3.2.7 app/models/spree/taxonomy.rb
spree_core-3.1.12 app/models/spree/taxonomy.rb
spree_core-3.2.6 app/models/spree/taxonomy.rb
spree_core-3.1.11 app/models/spree/taxonomy.rb
spree_core-3.1.10 app/models/spree/taxonomy.rb
spree_core-3.2.5 app/models/spree/taxonomy.rb
spree_core-3.1.9 app/models/spree/taxonomy.rb
spree_core-3.2.4 app/models/spree/taxonomy.rb
spree_core-3.1.8 app/models/spree/taxonomy.rb
spree_core-3.1.7 app/models/spree/taxonomy.rb
spree_core-3.2.3 app/models/spree/taxonomy.rb
spree_core-3.2.2 app/models/spree/taxonomy.rb
spree_core-3.1.6 app/models/spree/taxonomy.rb