2012-06-14 3 views
2

Я использую драгоценный камень awesome_nested_set, расположенный здесь https://github.com/collectiveidea/awesome_nested_set. Я хотел бы сделать родительские категории ярлыками optgroup, но я не понимаю, как это сделать, или если это возможно. Есть ли пример такого поведения?awesome_nested_set с метками optgroup

ответ

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 и вы все еще можете использовать rails "для создания html.

 Смежные вопросы

  • Нет связанных вопросов^_^