Используя awesome_nested_set с Rails 3, я создал систему иерархических категорий. Чтобы отобразить селектор категории в представлении, я использовал следующий код:
<%= form.select :parent_id, options_for_select(nested_set_options(Category, @category) {|i| "#{'-' * i.level} #{i.name}" }.unshift(["No Parent", nil]), @category.parent_id) %>
Я пытаюсь упорядочить категории в алфавитном порядке, по уровням. Если я изменю nested_set_options(Category, @category)
на nested_set_options(Category.order("name"), @category)
, это приведет к переупорядочению всего списка категорий по имени; я хочу переупорядочить дочерние элементы каждого узла в алфавитном порядке по имени.
Например, я хочу, чтобы результирующее меню выбора было упорядочено следующим образом:
Animal
- Bird
-- Chicken
-- Hawk
- Fish
-- Cod
-- Goldfish
-- Trout
- Mammal
-- Cat
-- Primate
--- Chimpanzee
--- Human
-- Zebra
Plant
- Tree