On Jun 27, 1:29 pm, Duc Qui <[email protected]> wrote:
> I am modeling how website pages can link to each other with Path &
> Edge models.
>
> DB.create_table paths {
> Integer id
> String path
> primary_key [:id],  :name => :pk_paths_id
>
> }
>
> DB.create_table :edges {
> Integer id
> Integer from_path_id
> Integer to_path_id
>
> primary_key [:id],  :name => :pk_edges_id
> foreign_key [:from_path_id], :paths,  :name => :fk__paths__id__1
> foreign_key [:to_path_id],     :paths,  :name => :fk__paths__id__2
>
> }
>
> Short example of from_path_id and to_path_id values in edges table.
> 1, 1
> 1, 2
> 1, 3
> 2, 1
> 2, 3
>
> How would I set the association for Path model?
>
> class Path < Sequel::Model
>   many_to_many :paths, :join_table => :edges    # is this correct?
> ...
> end
>
> class Edge < Sequel::Model
> ...
> end
>
> I understand how one_to_many, many_to_one, and many_to_many works when
> it's different tables, such has books, books_authors, authors. I've
> only found ActiveRecord examples/solutions for tables with
> many_to_many relationship to itself.

You just need to add a couple more options (:left_key and :right_key)
to your many_to_many method call.  See the section on "Self-
referential Associations" on 
http://sequel.rubyforge.org/rdoc/files/doc/association_basics_rdoc.html

BTW, You don't need an Edge model if you are just using edges as a
join table.

Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sequel-talk?hl=en.

Reply via email to