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.

On Tue, 10 Mar 2009 04:46:22 -0700 (PDT)
Lasertoast [email protected] wrote:

essentially a collection of User_Layouts). Thus, the
standard practice.
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

Starr H.
My blog: http://starrhorne.com
Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/

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


Starr H.
My blog: http://starrhorne.com
Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/