Finding results under a tree list

Hi,
I have a list of items that are ordered according to their provenance.
Origin is ordered under a tree, so that is displays that way:

USA > LA > Los Angeles

Right now, i have two classes and a join table items_origins.

class Origin < ActiveRecord::Base
    has_and_belongs_to_many :items
     acts_as_tree :order=>"name"
end

class Item < ActiveRecord::Base
    has_and_belongs_to_many :origins
end

I feel like it is unneeded to have a join_table here, and has_many
origins doesn't seem logic.

Can anyone tell me if i am doing this correctly?

would you then recommend the use of Gratr and acts_as_dag ?