Implementing a dashboard-style controller, (think iGoogle)

I'm a relatively new Rails developer, but I think I have a good grasp on the paradigm and I'm trying my best to adhere to RESTful standards.

First, let me describe the basic structure of my Rails app (only the pieces relevant to my problem of course):

I have a User_Layouts controller. Each User contains multiple User_Layouts. Each User_Layout entry describes a Module that the user is subscribing to (and thus will be displayed on his dashboard - essentially a collection of User_Layouts). Thus, the User_Layouts#index should display a dashboard containing all Modules the User is subscribed to (very similar to iGoogle). I want to be able to create these Modules easily (perhaps using a tailored generate script) - each module having its own model, view, and controller.

My question is, what is the proper way to structure this? When User_Layouts#index is invoked, how to I tell Rails to render each Module's view and place it in the proper div on the User_Layouts#index view? I've toyed with rendering partials, and render :update to replace the innerHTML, but none of these seem elegant enough to be standard practice.

Any ideas from the Rails experts out there?

Any help is greatly appreciated!

Jarad D.

I would probably just create partials for each type of module. Then you can use render :partial => @module, which will render the correct partial for the object type.

SH

Thanks for the quick response!

Unfortunately, I don't think a partial will work for my purposes. I have a lot of partial use throughout my app to help create DRY views - even across different controllers - but in this case, I need full- fledged MVC components dynamically rendered in a div. A partial will render a particular view, but I also need the controller, it's actions, and a set of params sent to it.

I may have found the answer myself a few minutes ago when I stumbled upon a specialized render method called render_component. This method is actually exactly what I was looking for, but it looks like its slated for deprecation in Rails 2.3. Anyone familiar with this method as far as advantages and disadvantages? I'm assuming there are problems with it since it is being removed (unless it's going to be placed in a plugin that I'm unaware of).

Thanks again in advance for you help!

Thanks for the quick response!

Unfortunately, I don't think a partial will work for my purposes. I have a lot of partial use throughout my app to help create DRY views - even across different controllers - but in this case, I need full- fledged MVC components dynamically rendered in a div. A partial will render a particular view, but I also need the controller, it's actions, and a set of params sent to it.

I may have found the answer myself a few minutes ago when I stumbled upon a specialized render method called render_component. This method is actually exactly what I was looking for, but it looks like its slated for deprecation in Rails 2.3. Anyone familiar with this method as far as advantages and disadvantages? I'm assuming there are problems with it since it is being removed (unless it's going to be placed in a plugin that I'm unaware of).

Thanks again in advance for you help!

Unfortunately, I don't think a partial will work for my purposes. I have a lot of partial use throughout my app to help create DRY views - even across different controllers - but in this case, I need full- fledged MVC components dynamically rendered in a div. A partial will render a particular view, but I also need the controller, it's actions, and a set of params sent to it.

Yeah, I would avoid using components, as they're deprecated. And you may already know this, but just because a partial is rendered as a result of a request to a specific controller, that doesn't mean that the partial can't link to other controllers or render arbitrary content.

SH