belongs_to (polymorphic) or has_many (through)

Hi,

I'd be sooo happy I any of you could help me out with a problem I'm
currently stuck with :slight_smile:

### Basic info ###
I'm on Rails 2.3.5 and love using the formtastic formbuilder :slight_smile:

### What I'm working on ###
I'm currently trying to build a little
demo app where my friends and I are able to manage all the things we
borrowed each other. (I know there are apps like this on the internet,
I just wanted to built my own to get used to rails :-)).

So wanted to build a form where I can enter:
- the name of the thing I'm borrowing to someone
- who I'm borrowing the thing to

--> I set up the Models
User
    name ..... (default hobo user model)

Loan
    name:string
    reminder:date

### PROBLEM ###
Now I wanted to set up 2 relations between the model.....
- Who is giving away the loan
- Who borrows the loan

???–> What do you think would be the most clever way to set up these
relations for my "use case"???

### Idea 1 ###
Loan
   belongs_to :lender, :polymorphic => true
   belongs_to :borrower, :polymorphic => true

User
   has_many :loans, :as => :lender
   has_many :loans, :as => :borrower

–> Does this work anyway??? (User.loans would be ambiguous,
right?)
–> how could I create a form to create a new Loan and select the
borrower from a select (the app would assign me as the lender in the
controller or by hidden field I guess)

### Idea 2 ###
Loan
    has_many :loan_assignments, :dependent => :destroy
    has_many :users, :through => :loan_assignments, :accessible =>
true

User
    has_many :loan_assignments, :dependent => :destroy
    has_many :loans, :through => :loan_assignments

--> How do I restrict the form, so I can only select 1 borrower
in /loans/new ???

### Idea 3 ###

Loan
    belongs_to :lender, :class_name => "User"
    belongs_to :borrower, :class_name => "User"

User
    has_many :lendings, :class_name => "Loan", :foreign_key => :lender_id
    has_many :borrowings, :class_name => "Loan", :foreign_key => :borrower_id