I registri mostrano associati con i bambini sulla pagina padre: uno-a-molti - Acts_as_tree
-
18-09-2019 - |
Domanda
Ho un relativamente semplice relazione uno-a-molti e utilizzare acts_as_tree per farlo ha organizzato nella vista. Sembra un po 'come questo:
root
|_Product 1
|_Product 2
|_Category 1.1
|_Product 3
|_Product 4
|_Category 1.1.1
|_Product 5
Il modo in cui impostare il tutto è che vi elenco i prodotti in azione 'show' della categoria. Tuttavia non posso sembrare troppo capire come mostrare: prodotto 1-5 nel 'show' per la categoria 1, prodotto 3-5 nella Categoria 1.1 e così via ...
Qualcuno ha un suggerimento, da dove posso prenderlo?
Grazie! Val
Altri suggerimenti
Se si utilizza awesome_nested_set (consigliato, lo faccio), allora si può fare questo:
Se prodotto belongs_to Categoria:
class Category < ActiveRecord::Base
def products_in_tree
Product.all(:joins => :category, :conditions => ['categories.lft >= ? and categories.rgt <= ?', left, right])
end
end
Se has_and_belongs_to_many prodotto Categoria (o has_many: attraverso), cambiano il: iscriverti per:. Categorie
È necessario utilizzare un insieme nidificato se si vuole risolvere questo con prestazioni accettabili (cioè, di evitare un gran numero di ricerche nei database separati per compilare l'elenco).
Rails usato per avere atti _ _ come nested_set built-in, ed il spiegazione di come funziona è ancora molto buona e abbastanza valida. Oggi è necessario utilizzare questo come un plug .
Tuttavia, il plugin Rails di default non è molto buona, che è il motivo per cui è stato fatto diversi altri plugin. Mi consiglia di utilizzare Impressionante Nested Set , che io stesso ho usato con risultati soddisfacenti.
set nidificati possono essere un po 'difficile da capire, ma si spera che il primo anello e l'altro readme la volontà di spiegare a voi.