Frage

Ich habe eine relativ einfache Eins-zu-viele-Beziehung und verwende acts_as_tree es in der Ansicht zu organisieren. Es sieht ein bisschen wie folgt aus:

root

  |_Product 1
  |_Product 2
  |_Category 1.1

        |_Product 3
        |_Product 4
        |_Category 1.1.1

               |_Product 5

So wie ich es eingerichtet ist, dass ich Produkte in der ‚Show‘ Aktion der Kategorieliste. Allerdings kann ich nicht scheinen, herauszufinden, wie zu zeigen: Das Produkt 1-5 in der ‚Show‘ für die Kategorie 1, Produkt 3-5 in Kategorie 1.1 und so weiter ...

Hat jemand einen Tipp, von wo ich es abholen kann?

Danke! Val

War es hilfreich?

Lösung

Sie können auch einen Blick auf die letzten Abstammung rel="nofollow Juwel für hohe Leistung, wenn man muss erhalten alle Nachkommen in einer SQL-Abfrage.

Andere Tipps

Wenn Sie mit awesome_nested_set (empfohlen, ich), dann können Sie dies tun:

Wenn Produkt belongs_to Kategorie:

class Category < ActiveRecord::Base
    def products_in_tree
        Product.all(:joins => :category, :conditions => ['categories.lft >= ? and categories.rgt <= ?', left, right])
    end
end

Wenn Produkt has_and_belongs_to_many Kategorie (oder has_many: durch), ändern Sie die: Werden Sie Mitglied auf. Kategorien

Sie benötigen einen verschachtelten Satz verwenden, wenn Sie diese mit einem akzeptablen Leistung wollen lösen (das heißt, eine Vielzahl von separaten Datenbankabfragen zu vermeiden, um die Liste zu kompilieren).

Schienen verwendet Handlungen haben _ _ als nested_set eingebaut, und die Plugin .

Allerdings ist die Standard-Rails-Plugin nicht sehr gut, weshalb einige andere Plugins ist gemacht worden. Ich werde empfehlen, dass Sie Ehrfürchtig Nested Set , die ich selbst mit befriedigenden Ergebnissen verwendet haben.

Verschachtelte Sätze können ein bisschen schwer zu verstehen sein, aber hoffentlich die erste Verbindung und die anderen Readme Willen erklärt es Ihnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top