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?
Antworten
Zu viele Anzeigen?
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.