Sha256: 1d19ce6b3f0eaf9ce6e323d8468594c4946e421b5746443db4fed17e2195dbbd

Contents?: true

Size: 921 Bytes

Versions: 1

Compression:

Stored size: 921 Bytes

Contents

class BanalComplex < ApplicationRecord
    acts_as_forest :order => "weight"

    before_update :calculate_and_save_combined_weight!
    before_destroy :delete_childrens

    def delete_childrens
        self.children.destroy_all
    end

    §(STILL_FAILS_SADLY)
    def calculate_and_save_combined_weight!
        update_column(:weight_of_identity_plus_children, self.descendants.map(&:weight).sum)
    end

    # fails as a ruby keyword mayb? like §Fails as a directive like §Idempotent
    def descendants
        first_level_children = self.class.where(parent_id: self.id)
        second_level_children = first_level_children
            .pluck(:id)
            .reject { |id| id == self.id }
            .tap { |ids| puts ids.inspect + self.inspect }
            .map { |id| self.class.where(parent_id: id) }.flatten

        first_level_children + second_level_children
    end

    # def §Fails
    # end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jester-data-8.0.0 app/models/banal_complex.rb