has_many_and_belongs_to_"one"? beginner question, go easy on me ....

Greetings. I am new to RoR, and to programming in general, so I apologize if the solution is trivial.

My goal is to keep track of the 5 most common "Tag_Relationships" in a tagging scheme. This would let me ask such things as "what tag accompanies the tag 'computer' most often, second most often" etc.. I figured this might be easier than storing an Array with the last_five per Agile Web Development edition 2. I chose to use the acts_las_list feature.

my question involves two models

Tag ... has_many :tag_relationships, :order => :position validates_uniqueness_of :name

Tag_Relationship belongs_to :tag, :foreign_key => 'related_tag_id' acts_as_list :scope => :tag validates_uniqueness_of :tag_id, :scope => :related_tag_id

Questions. Something looks fishy to me in the belongs_to for Tag_Relationships. I had to do this to get it to work, but really, the tag_relationship belongs to the original tag, not the referred tag. What is the correct way to use has_many / belongs_to in this case? I would like to be able to do the following

t = Tag.find(1) trs = t.tag_relationships

and then iterate over the collection and get the name for each referred tag. My tag_relationships table is as follows

  create_table "tag_relationships", :force => true do |t|     t.column "tag_id", :integer     t.column "related_tag_id", :integer     t.column "position", :string #ranking for this particular tag     t.column "relationships_count", :integer, :default => 1 #number of times this relationship has been recorded   end

Thanks in advance

John