STI Problem When Using Same Controller

Hi there,

I created few models with STI, parent model is Account, child models
are CreditCard, DebitCard, etc… several sub-models, using STI.

Every model works fine individually, but I have another model user
associated with account

user has_many accounts
account belongs_to user

The problems are :

  1. Cant use association to create sub-models, like
    User.first.creditcards.new, but I can use User.first.accounts.new.

  2. How can use same controller AccountsController to create different
    sub-models, actually I hardly use Account Model.

codes are as following

http://pastie.org/439744

The user does not know what creditcards are in your user model. You
have to have an association in the user model if you want to do
User.first.creditcards.new

has_many :creditcards

or get the users account and then check the creditcard… Since a user
has_many accounts you would have to get an account before you could
create a creditcard.

So something like User.first.accounts.first.creditcard.new would
explain better…

Or you could use has_many through and use the accounts model as the
through…

has_many :accounts
has_many :creditcards, :through => :accounts

Thanks Freddy,

So rails doesn’t support association inheritance, I know what you
mean, but I don’t like to put the sub-model association into user
model,

because i have about 10 sub-models like credit_card in Account,

I found a plugin called “has_many_polymorphs”, this plugin allow you
access all the association between two parent model.

One other question, if I want to use one controller to create all the
sub models, how could i write all the controller actions?

Thanks again,

Allen