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 ???


P.S. Sorry for my English, it’s not my native tongue :slight_smile: