У меня есть категория со списком элементов. Элементы имеют позицию, а категория имеет отношения has_many: items,: order = > "position". Когда пользователь обновляет значение позиции, я хочу видеть его позицию. Моя позиция - это поплавок, позволяющий перемещаться между округленными числами.
pos=item.category.items.map(&:id)
current_position=pos.index(id.to_i)
item.save # want to refresh the relationship here
pos_new=item.categoty.items.map(&:id)
# grabbing this since just accessing item isn't updated if positioning has changed
item_new=Item.find(id)
pos_new=item_new.category.items.map(&:id)
new_position=pos_new.index(id)
if current_position!=new_position
is_moved=true # sent back in JSON to propagate a dynamic change.
end
Вышеприведенные работы, но это кажется действительно многословным. Есть ли способ, чтобы я рассказывал об элементе, сохраняя, что отношение категории необходимо обновить, поскольку порядок может быть изменен?