I personally tend to think that the Model View Controller (MVC)
architecture provided by frameworks such as Rails is often
misunderstood. It''s very easy to begin associating the three layers in
a
one-to-one-to-one relationship. But, that''s not really in the spirit of
MVC. MVC is all about separating responsibilities. Models being
responsible for persisting, calculating, and otherwise manipulating
data, views responsible for presenting data to the users, and
controllers to handling the "wiring" between the model and view.
Nothing in MVC says anything about these being one-to-one. I place part
of the blame for this on overuse of scaffolding. I''m not saying
there''s
anything wrong with scaffolding, I just think it tends to promote this
limited view of MVC.
That being said:
I would recommend deciding what pieces of view logic could be shared
between your portal page and other views that may contain the same view
code. Take that shared code and create a folder somewhere in your
project structure to store partials contain these shared views (maybe
app/views/shared).
Then wherever you want to display that view use something like render
:partial => "shared/_my_view"
Just remember that your controller (say welcome_controller.rb) is
responsible for loading any data used in all these partials. For that I
would recommend adding before_filters to call a method to get all
required data from your model.
It might even be worth while to look into a "Presenter" pattern
architecture for your welcome page. I''ll leave that as an exercise for
you to research.
Leif Elan wrote:> Hello,
>
> Maybe someone can point me in the right direction here:
>
> Say I''m developing a site where the main page is a sort of portal.
On
> that page I''d like to display content from various controllers in
my
> Rails application.
>
> For example: The top right of the screen would have a div to login
> utilizing my Session controller. The left side of the screen would have
> a div displaying content from an RSS feed controller. There would be a
> div containing page specific navigation tabs coming from a Navigation
> controller.... you get the idea...
>
> So for example I''m thinking of having a Home or Welcome controller
that
> displays views/home/index.html.erb. This inherits a layout from
> Application that gives me the top banner and footer for the site. So in
> the controller I''ll put some logic to decide which navigation div
to
> display and the login div based on whether the user is logged in.
>
> So I''m in my Home controller. I''m working with def index
utilizing
> views/home/index.html.erb and i want to display content from multiple
> different controllers.
>
> I''ve found lots of different ideas on google, but nothing rock
solid.
> I''m on rails 2.1.
>
> Any direction would be much appreciated.
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---