Sha256: 9722369cd5ba5f84dc198114cfc7dfb4ca3e8650fe14741fce697e1a42245d81

Contents?: true

Size: 536 Bytes

Versions: 27

Compression:

Stored size: 536 Bytes

Contents

# frozen_string_literal: true
# encoding: utf-8

class ChildDoc
  include Mongoid::Document

  embedded_in :parent_doc

  attr_writer :position

  after_save :update_position

  def position
    exsited_position = parent_doc.children_order.index(id)
    exsited_position ? exsited_position + 1 : parent_doc.aspects.size
  end

  def update_position
    if @position && (@position.to_i > 0)
      parent_doc.children_order.delete(id)
      parent_doc.children_order.insert(@position.to_i - 1, id)
      parent_doc.save
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
mongoid-7.3.5 spec/support/models/child_doc.rb
mongoid-7.3.4 spec/support/models/child_doc.rb
mongoid-7.1.11 spec/app/models/child_doc.rb
mongoid-7.2.6 spec/support/models/child_doc.rb
mongoid-7.3.3 spec/support/models/child_doc.rb
mongoid-7.3.2 spec/support/models/child_doc.rb
mongoid-7.2.5 spec/support/models/child_doc.rb
mongoid-7.1.10 spec/app/models/child_doc.rb
mongoid-7.1.9 spec/app/models/child_doc.rb
mongoid-7.2.4 spec/support/models/child_doc.rb
mongoid-7.3.1 spec/support/models/child_doc.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/mongoid-7.1.7/spec/app/models/child_doc.rb
mongoid-7.3.0 spec/support/models/child_doc.rb
mongoid-7.2.3 spec/support/models/child_doc.rb
mongoid-7.1.8 spec/app/models/child_doc.rb
mongoid-7.2.2 spec/support/models/child_doc.rb
mongoid-7.2.1 spec/support/models/child_doc.rb
mongoid-7.1.7 spec/app/models/child_doc.rb
mongoid-7.2.0 spec/support/models/child_doc.rb
mongoid-7.1.6 spec/app/models/child_doc.rb