Model Advice

Hi-

I have a single controller that's associated with a single model. I would now like to create a whole bunch more models to use the same controller, is this a bad idea?

If I use the scaffold generator (which takes the controller and model as inputs) will this wipe out all the work I have already done for the first model (in the views and controller)?

What is the best way to go when you have a lot of models and a single controller?

Thanks!

I'm guessing you want to perform some operation on multiple models in the same action.

You can use: script/generate model ModelName name:string this:integer that:boolean

This lets you generate all the extra models (and migrations). You'll then need to add them into the controller yourself.

Yes, I will essentially do the same things with the new model.

What are the extra parameters doing in the generator?

Nevermind...I looked it up, sorry for being lazy :slight_smile:

So, a question on good practice:

Having multiple models in one controller is a good/normal thing?

The extra (optional) arguments after the ModelName will prepopulate the generated migration file with the columns (and types) specified.

There's nothing inherently wrong with multiple models in a controller. Often times, though, you're dealing with a single model and its associations (which are other models). For instance, finding a product and its category, brand, sizes, and colors. You only need: @product = Product.find(params[:id]) to get @product.brand, @product.category, @product.sizes, etc.

There's a really good screencast on doing CRUD with associations here:

Ok. Thanks very much for your feedback!