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
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/gluttonberg/drag_tree/active_record.rb', line 27 def find_by_sorted_ids(new_sorted_element_ids) # find records in unorder list elements = self.where(:id => new_sorted_element_ids).all # 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.blank? ? sorted_elements : sorted_elements.uniq end |
#is_drag_tree(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/gluttonberg/drag_tree/active_record.rb', line 7 def is_drag_tree( = {}) [:flat] = true unless .has_key?(:flat) self.send(:include, Gluttonberg::DragTree::ActiveRecord::ModelHelpersClassMethods) unless [:flat] acts_as_tree self.is_flat_drag_tree = false else self.make_flat_drag_tree end self.drag_tree_scope_column = [:scope] unless [:scope].blank? end |
#repair_list(list) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/gluttonberg/drag_tree/active_record.rb', line 19 def repair_list(list) unless list.blank? list.each_with_index do |sibling , index| sibling.update_attributes(:position => index) end end end |