As per convo's on #rubyonrails, this approach may work for you (Thanks bricker for the gist):
class Carpool
belongs_to :driver, class_name: "User" # Single Driver per Carpool
has_many :carpool_riders
has_many :riders, through: :carpool_riders
# Schema:
# driver_id
end
class CarpoolRider
belongs_to :carpool
belongs_to :rider, class_name: "User"
# Schema:
# carpool_id
# rider_id
end
class User
has_many :carpools_driven, class_name: "Carpool", foreign_key: "driver_id"
has_many :carpool_riders
has_many :carpools_ridden, through: :carpool_riders
end