Module: Gluttonberg::DragTree::ActiveRecord::ClassMethods
- Defined in:
- lib/gluttonberg/drag_tree/active_record.rb
Instance Method Summary collapse
- #find_by_sorted_ids(new_sorted_element_ids) ⇒ Object
- #is_drag_tree(options = {}) ⇒ Object
- #repair_list(list) ⇒ Object
Instance Method Details
#find_by_sorted_ids(new_sorted_element_ids) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/gluttonberg/drag_tree/active_record.rb', line 35 def find_by_sorted_ids(new_sorted_element_ids) # find records in unorder list elements = self.find(new_sorted_element_ids ) # sort it using ruby method sorted_elements = [] new_sorted_element_ids.each do |id| id = id.to_i sorted_elements << elements.find{ |x| x.id == id } end sorted_elements end |
#is_drag_tree(options = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/gluttonberg/drag_tree/active_record.rb', line 11 def is_drag_tree( = {}) [:flat] = true unless .has_key?(:flat) self.send(:include, Gluttonberg::DragTree::ActiveRecord::ModelHelpersClassMethods) if .has_key?(:scope) acts_as_list :scope => [:scope] else acts_as_list end unless [:flat] acts_as_tree else self.make_flat_drag_tree end end |
#repair_list(list) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/gluttonberg/drag_tree/active_record.rb', line 26 def repair_list(list) unless list.blank? list.each_with_index do |sibling , index| sibling.position = index sibling.save end end end |