3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/coalla/orm/sortable_association.rb', line 3
def sortable_association(*args)
unless respond_to?(:sortable_associations)
class_attribute :sortable_associations, instance_writer: false
self.sortable_associations = []
end
self.sortable_associations += args
class_eval do
def assign_nested_attributes_for_collection_association(association_name, attributes_collection)
association_class = self.class.reflect_on_association(association_name).klass
if sortable_associations.include?(association_name) && association_class.attribute_names.include?('position')
attributes_collection.each_with_index do |(key, value), index|
if key.is_a?(Hash)
key[:position] = index
elsif value.is_a?(Hash)
value[:position] = index
end
end
end
super
end
end
end
|