Layouts - how to render partials from multiple controllers

I’m not understand how to piece my whole application together.

Basically I have a home page for a restaurants website which will
display a search facility, a login box, and some stats.

Now my first problem is not knowing which controller this should be the
layout for, because the only part of this page that would be common to
all other pages is the header and that is it: see
http://www.eatnewcastle.com/test/layout.htm

My second problem is that the login box functionality is part of an
account controller, the search box functionality is part of a search
controller etc So how can I render partials from all these different
controllers in this one layout?

I hope this makes sense. Please reply if any aspect is confusing and I
will try to explain myself better. Thanks very much!

in your view code just prefix the partial template with
“controller_name/partial_name” like so:
<%= render :partial=>‘search/search_box’ %>
<%= render :partial=> ‘restraunts/menus’ %>

hope thats what you were looking for.
~Michael fairchild

Richard wrote:

My second problem is that the login box functionality is part of an
account controller, the search box functionality is part of a search
controller etc So how can I render partials from all these different
controllers in this one layout?

I hope this makes sense. Please reply if any aspect is confusing and I
will try to explain myself better. Thanks very much!

The controller is up to you, as its really just personal preference. I
usually use the users controller and a “welcome” action for such
things. You can call partials from other controllers as such.

render :partial => ‘another_controller/partial’

-b

Brandt wrote:

Richard wrote:

My second problem is that the login box functionality is part of an
account controller, the search box functionality is part of a search
controller etc So how can I render partials from all these different
controllers in this one layout?

I hope this makes sense. Please reply if any aspect is confusing and I
will try to explain myself better. Thanks very much!

The controller is up to you, as its really just personal preference. I
usually use the users controller and a “welcome” action for such
things. You can call partials from other controllers as such.

render :partial => ‘another_controller/partial’

-b

Ah right. Thanks to both of you! This helped. I really didn’t realise it
was as simple as that.

Richard wrote:

Brandt wrote:

render :partial => ‘another_controller/partial’

Ah right. Thanks to both of you! This helped. I really didn’t realise it
was as simple as that.

Will the other controller control the other partial?


Phlip
Redirecting... ← NOT a blog!!!

Phlip wrote:

Ah right. Thanks to both of you! This helped. I really didn’t realise it
was as simple as that.

Will the other controller control the other partial?

No, if your partial needs objects, they need to be supplied by the
controller/action that is being performed. Components will achieve what
I believe you are thinking of, but I really can’t comment on them as
I’ve never used them myself.

-b

Brandt wrote:

No, if your partial needs objects, they need to be supplied by the
controller/action that is being performed. Components will achieve what I
believe you are thinking of, but I really can’t comment on them as I’ve
never used them myself.

The moral of the Rails story is that a little bit of MVC is still
much, much better than none!


Phlip
http://c2.com/cgi/wiki?ZeekLand ← NOT a blog!!