Im trying to get my head around a model association issue that I've been
struggling with despite the fact that I know I've done the exact same
thing previously.
I have the following models:
class User < ActiveRecord::Base
has_many :user_mailboxes
end
class UserMailbox < ActiveRecord::Base
belongs_to :user
end
This all works fine and user maps to usermailbox through user_id.
The problem Im having is that the usermailbox table also has a
"other_user_id" field which also links back to the users table. I cannot
for the life of me figure out how I set this up in the model so that i
would be able to call something along the lines of:
for item in @user.user_mailboxes
item.other_user.first_name
end
So in essence my issue is that I have two fields in one table pointing
back at the same table and need to setup associations.
This all works fine and user maps to usermailbox through user_id.
The problem Im having is that the usermailbox table also has a
"other_user_id" field which also links back to the users table. I cannot
for the life of me figure out how I set this up in the model so that i
would be able to call something along the lines of:
for item in @user.user_mailboxes
item.other_user.first_name
end
So in essence my issue is that I have two fields in one table pointing
back at the same table and need to setup associations.
belongs_to :foo, :class_name => 'Bar' creates an association with Bar usin foo_id as the foreign key
But what about when I want to go back the other way? So I have the
mailbox object which has the field "other_user_id" but how do I create
the association between this ID and the ID in the users table which is
its primary key (id)?
But what about when I want to go back the other way? So I have the
mailbox object which has the field "other_user_id" but how do I create
the association between this ID and the ID in the users table which is
its primary key (id)?
Did you read through the thread referenced by Robert? Did you work
right through and understand everything there? (Particularly note the
use of foreign_key).