On Tuesday, February 17, 2015 at 8:32:08 AM UTC-8, Cassie S wrote: > > Hello! > > I'm not sure if I'm just not reading this correctly, but the results I'm > getting when I use .direct_predecessors and .direct_successors are > unexpected. > > > http://sequel.jeremyevans.net/rdoc/files/doc/association_basics_rdoc.html#label-Self-referential+Associations > > So I have this schema in the example: > # Database schema: > # nodes edges > # :id <----------- :successor_id > # :name \----- :predecessor_id > > And for demonstrative purposes I do a query like this: > SELECT predecessors.id, predecessors.name, successors.id, successors.name > FROM nodes AS predecessors, nodes AS successors, edges > WHERE predecessors.id = edges.predecessor_id > AND successors.id = edged.successor_id > > This returns results like: > | Predecessor ID | Predecessor Name | Successor ID | Successor Name | > | 1 | Predecessor 1 | 2 | Successor 1 | > | 1 | Predecessor 1 | 3 | Successor 2 | > | 1 | Predecessor 1 | 4 | Successor 3 | > > So if I have the node Predecessor 1, and I call .direct_successors on that > node, I expect to get a dataset containing each of the nodes in the last 2 > columns. > > I've set up my Node class like the example: > class Node > many_to_many :direct_successors, :left_key=>:successor_id, > :right_key=>:predecessor_id, :join_table=>:edges, :class=>self > many_to_many :direct_predecessors, :right_key=>:successor_id, > :left_key=>:predecessor_id, :join_table=>:edges, :class=>self > end > > Calling .direct_successors on a node does not get me the dataset I'm > expecting, but .direct_predecessors does. Is it possible that the :left_key > and :right_key in the in the association definitions are swapped? Am I not > understanding this correctly? >
Thanks for bringing this to my attention. You are correct, this is a bug in the documentation, the :left_key and :right_key are swapped. I'll fix it shortly. Thanks, Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
