Forum: Ruby on Rails Models distance in terms of associations

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Gabriele T. (Guest)
on 2009-03-21 20:24
(Received via mailing list)
Hi,
I was wondering if there's a way to know the associations needed to
reach a model from another, i.e.
I have a Customer, I know it has some Invoices, each of these has more
InvoiceRows which belongs to an InvoiceRowDescription, I would like to
know if there's a way to automagically build something like this (for
an auto generated named scope's join key):

{:invoices => {:invoice_rows => :invoice_row_description}}

knowing just that the current model is Customer, and the last model is
InvoiceRowDescription

Thanks,

G.
Frederick C. (Guest)
on 2009-03-21 20:59
(Received via mailing list)
On Mar 21, 6:23 pm, Gabriele T. <removed_email_address@domain.invalid>
wrote:
> Hi,
> I was wondering if there's a way to know the associations needed to
> reach a model from another, i.e.
> I have a Customer, I know it has some Invoices, each of these has more
> InvoiceRows which belongs to an InvoiceRowDescription, I would like to
> know if there's a way to automagically build something like this (for
> an auto generated named scope's join key):
>

There's not something builtin (although it does sound like it would be
a relatively simple graph traversal exercise to produce something like
this (picking the 'best' path if there were multiple ones might be
trickier)).

Fred
Gabriele T. (Guest)
on 2009-03-22 09:05
(Received via mailing list)
On 21 Mar, 19:58, Frederick C. <removed_email_address@domain.invalid> wrote:
> On Mar 21, 6:23 pm, Gabriele T. <removed_email_address@domain.invalid>
> wrote:
>
> There's not something builtin (although it does sound like it would be
> a relatively simple graph traversal exercise to produce something like
> this (picking the 'best' path if there were multiple ones might be
> trickier)).

Indeed there are multiple choices... it looks like an operations
research problem... I could look at all the model_ids' fields in the
last model and traverse them up to the first of the chain (the one
which don't belongs to some other model), if I find the current model
in this chain, I can stop, otherwise I take other associations
chains... in case of loops.. I can consider it a dead end... but this
optimal approach can explode in terms of computational complexity (ok,
we are dealing with very fiew elements, possibly dozens, rarely an app
can have more than 100 models... thus it won't be a real problem,
but.... who knows!)
This topic is locked and can not be replied to.