# REST routing issue w self-referential resource join model

**URL:** <https://www.ruby-forum.com/t/rest-routing-issue-w-self-referential-resource-join-model/103983>\
**Category:** Rails\
**Created:** [May 12, 2007, 10:49am UTC](https://www.ruby-forum.com/t/rest-routing-issue-w-self-referential-resource-join-model/103983 "2007-05-12T10:49:33Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![kadoudal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f0a364/32.png) [@kadoudal](https://www.ruby-forum.com/u/kadoudal)\
**Post date:** [May 12, 2007, 10:49am UTC](https://www.ruby-forum.com/t/rest-routing-issue-w-self-referential-resource-join-model/103983/1 "2007-05-12T10:49:33Z")

</div>

I have a ‘user’ resource w route =\> map.resources :users

user model is defined as self-referential  
class User \< ActiveRecord::Base  
has\_many :relationships\_as\_befriender, :foreign\_key =\>  
‘befriender\_id’, :class\_name =\> ‘User’  
has\_many :relationships\_as\_friend, :foreign\_key =\> ‘friend\_id’,  
:class\_name =\> ‘User’  
has\_many :friends, :through =\> :relationships\_as\_friend  
has\_many :befrienders, :through =\> :relationships\_as\_befriender  
…

I created the nested ‘relationship’ resource

class Relationship \< ActiveRecord::Base  
set\_primary\_key :relation\_id  
belongs\_to :befriender, :foreign\_key =\> “befriender\_id”, :class\_name  
=\> “User”  
belongs\_to :friend, :foreign\_key =\> “friend\_id”, :class\_name =\>  
“User”  
…

if I had a one-to-many , I know that the route should be created like  
that…  
map.resources :users do |users|  
users.resources :relationships  
end

but if I require /users/1/relationships , it will use the user\_id  
as a foreign\_key… and fail  
relationship\_url failed to generate from {:action=\>“show”,  
:user\_id=\>“1”, :controller=\>“relationships”}, expected:  
{:action=\>“show”, :controller=\>“relationships”}, diff: {:user\_id=\>“1”}

how should I write teh routes ? (tips or links to solution  
accepted… ;-))

kad
