2012-06-14 150 views

回答

1

這當然不是這樣做的最有效的方式,但它滿足任務的要求。晚

<select name="category_id" data-placeholder="Select a Category" class="chzn-select"> 
    <option value=""></option> 
    <% @cats.each do |cat| %> 
    <optgroup label="<%= cat.name %>"> 
     <% cat.children.each do |child| %> 
     <option value="<%= child.id %>"><%= child.name %></option> 
     <% end %> 
    </optgroup> 
    <% end %> 
    </select> 
0

一點點,但是我有同樣的問題,並通過使用根據https://github.com/collectiveidea/awesome_nested_set/blob/master/lib/awesome_nested_set/helper.rb

module ApplicationHelper 
    def grouped_nested_set_options(class_or_item, mover = nil) 
    if class_or_item.is_a? Array 
     items = class_or_item.reject { |e| !e.root? } 
    else 
     class_or_item = class_or_item.roots if class_or_item.respond_to?(:scope) 
     items = Array(class_or_item) 
    end 
    result = [] 
    group = [] 
    items.each do |root| 
     root.class.associate_parents(root.self_and_descendants).map do |i| 
     if i.level == 0 
      group = [] 
      group.push yield(i) 
      group.push [] 
      result.push group 
     else 
      if mover.nil? || mover.new_record? || mover.move_possible?(i) 
      group[1].push [yield(i), i.primary_id] 
      end 
     end 
     end.compact 
    end 
    result 
    end 
end 

這樣,你可以只使用grouped_nested_set_options代替nested_set_options一個輔助方法來解決它,你仍然可以使用用於生成html的rails'表單助手。