2 Stimmen

Awesome_nested_set mit optgroup labels

Ich benutze das awesome_nested_set Edelsteinpaket hier. Ich möchte die Elternkategorien als optgroup-Labels machen, bin aber ratlos, wie ich das bewerkstelligen kann oder ob es überhaupt möglich ist. Gibt es irgendwo ein Beispiel für dieses Verhalten?

1voto

Jason Yost Punkte 4757

Dies ist sicherlich nicht der effizienteste Weg, um dies zu tun, aber es erfüllte die Anforderung der Aufgabe.

     <% @cats.each do |cat| %>

        <% cat.children.each do |child| %>
        <%= child.name %>
        <% end %>

     <% end %>

0voto

Krisdigital Punkte 630

Etwas spät, aber ich hatte die gleiche Frage und habe sie gelöst, indem ich eine Hilfsmethode gemäß https://github.com/collectiveidea/awesome_nested_set/blob/master/lib/awesome_nested_set/helper.rb verwendet habe.

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

Auf diese Weise können Sie einfach grouped_nested_set_options anstelle von nested_set_options verwenden und Sie können weiterhin die Formulierungshelfer von Rails zum Generieren des HTML verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X