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