I have two models, User and Request
By definition, A User can have many requests, and each Request has one assigned agent (who can be a different user)
with the base as,
class User < ActiveRecord::Base
1. User has_many requests (with column requests.user_id)
2. Request has_one user(with column requests.agent_id)
This may be what you're looking for.
class User < ActiveRecord::Base has_many :requests end class Request < ActiveRecord::Base belongs_to :user belongs_to :agent, class_name: 'User', foreign_key: 'agent_id' end