2012-06-14 4 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 

방금 ​​대신 nested_set_options의 grouped_nested_set_options을 사용할 수있는 방법에 따라 도우미 방법을 사용하여 그것을 해결하고 당신은 여전히 ​​사용할 수 있습니다 html을 생성하는 레일 '폼 헬퍼.

관련 문제