I have a 'Circuit' table, and a 'Glue' table to perform a many-to-many
join on the circuit records, such at a circuit can have many subcircuits
(its component parts) and many supercircuits (circuits which it itself
is a part of).

  has_and_belongs_to_many :subcircuits,
    :class_name => "Circuit",
    :join_table => "circuit_glue",
    :association_foreign_key => "PTR_component",
    :foreign_key => "PTR_circuit"
  has_and_belongs_to_many :supercircuits,
    :class_name => "Circuit",
    :join_table => "circuit_glue",
    :foreign_key => "PTR_component",
    :association_foreign_key => "PTR_circuit"

With this, I can do successfully things like
my_circuit.subcircuits[0].name
but if I try
my_circuit.subcircuits[0].subcircuits.any_method
... I get a NoMethodError: You have a nil object when you didn't expect
it!
The objects in the cct.subciruits array do not appear to 'full' circuit
objects in as much as they do not repsonsd to 'subcircuits'
To build a recursive list of subcircuits I find I have to resort to

self.subcircuits.each { |sc|
subcirc_array.push(Circuit.find(:all).detect { |c| c.absid.to_s ==
sc.PTR_component })}
... which seems pretty slow and laborious.  Any advice on how to speed
this up, and/or get ...subciruits[n].subcircuits to work as required?
Thanks in advance.
-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to