I am having a problem with two models that each have a HABTM
relationship to the other. For example:
CREATE TABLE people (id INT, name TEXT);
CREATE TABLE teams (id INT, name TEXT);
CREATE TABLE people_teams (person_id INT, team_id INT);
The person model has:
And the team model has:
The trouble comes when trying to destroy something, I end up with a
recursive stack sequence that looks something like:
This appears to be due to something in associations.rb where the
association array is cleared as part of destroying the record. What
appears to be happening is that when person.rb is loaded, its HABTM
causes team.rb to be loaded which ends up reloading person.rb? I’ve
added some instrumentation that shows that the
destroy_without_habtm_shim_for_teams method ends up being added twice.
This causes recursion when the record is destroyed. I’ve worked around
this by embedding this method aliasing inside an “unless
method_defined?()” to prevent the recursive situation. However, I’m
suspecting that I’m missing something else obvious.
I am using activerecord 1.13.2 and rails 1.0.0.