Sha256: c980a1e45d08850ffb52d105214a99eaa36c74b125225f5d3b74e65da254b92e

Contents?: true

Size: 487 Bytes

Versions: 91

Compression:

Stored size: 487 Bytes

Contents

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

91 entries across 86 versions & 8 rubygems

Version Path
mongoid-7.0.13 spec/app/models/child_doc.rb
mongoid-7.0.12 spec/app/models/child_doc.rb
mongoid-6.4.8 spec/app/models/child_doc.rb
mongoid-7.0.11 spec/app/models/child_doc.rb
mongoid-7.0.10 spec/app/models/child_doc.rb
mongoid-6.4.7 spec/app/models/child_doc.rb
mongoid-6.4.5 spec/app/models/child_doc.rb
mongoid-7.0.8 spec/app/models/child_doc.rb
mongoid-7.0.7 spec/app/models/child_doc.rb
mongoid-7.0.6 spec/app/models/child_doc.rb
mongoid-5.4.1 spec/app/models/child_doc.rb
mongoid-7.0.5 spec/app/models/child_doc.rb
mongoid-7.0.4 spec/app/models/child_doc.rb
mongoid-6.4.4 spec/app/models/child_doc.rb
mongoid-7.0.3 spec/app/models/child_doc.rb
mongoid-6.4.2 spec/app/models/child_doc.rb
mongoid-7.0.2 spec/app/models/child_doc.rb
mongoid-7.0.1 spec/app/models/child_doc.rb
mongoid-6.4.1 spec/app/models/child_doc.rb
mongoid-5.4.0 spec/app/models/child_doc.rb