Activerecord, struttura "ad albero" e radice

ciao a tutti,
ho una serie di modelli activerecord così strutturati
A
has_many B

B
belongs_to A
has_many C

C
belongs_to B
has_many D

ora, il problema è questo:
sto cercando un metodo per accedere direttamente ad A, sia che mi
trovi in D, che in C che in B; insomma, un qualcosa tipo C.root.
Deve essere una cosa “universale” per tutti i modelli, insomma, non
voglio dover scrivere un metodo diverso per ogni modello usando
D.C.B.A etc…

è possibile questo?
ciao,
stefano

2008/8/12 Pietro G. [email protected]:

personalmente ho optato per la duplicazione, cioè ho messo un campo
company_id in molte tabelle, sebbene in teoria sarebbe bastato
metterlo in una sola tabella, ma in quel caso tutte le mie query
sarebbero state complessissime.

non mi ispira molto questa soluzione, per il momento ho creato un
metodo root in tutti i modelli, con, ad esempio

D:
def root
c.b.a.id
end

C:
def root
b.a.id
end

B:
def root
a.id
end

ma sarebbe molto meglio se ci fosse un modo per evitare tutto questo…

ciao,
stefano

Per favore non mandate allegati in Word o PowerPoint.
Si veda We Can Put an End to Word Attachments - GNU Project - Free Software Foundation

On Tue, Aug 12, 2008 at 9:13 AM, Stefano S. [email protected]
wrote:

ora, il problema è questo:
sto cercando un metodo per accedere direttamente ad A, sia che mi
trovi in D, che in C che in B; insomma, un qualcosa tipo C.root.
Deve essere una cosa “universale” per tutti i modelli, insomma, non
voglio dover scrivere un metodo diverso per ogni modello usando
D.C.B.A etc…

mi trovo in una situazione molto simile: ho uno schema db abbastanza
complesso, e nel mio caso la “radice” è l’azienda (modello Company),
nel senso che ogni utente deve accedere solo agli oggetti della
propria azienda,

personalmente ho optato per la duplicazione, cioè ho messo un campo
company_id in molte tabelle, sebbene in teoria sarebbe bastato
metterlo in una sola tabella, ma in quel caso tutte le mie query
sarebbero state complessissime.