在 Rails 3 中使用 awesome_nested_set,我创建了一个分层类别系统。为了在视图中显示类别选择器,我使用了以下代码:
<%= 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