:layout => question

I’m looking at someone else’s code and I’m not sure what this does.

In a controller action for ‘show’ is the following:

render :layout => 'edit'

Ok, there a layout for edit, basically it is the standard javascript
includes, anti csfr stuff and ‘yield’.

Hmm, what’s it yielding to? Which template is it yielding to? There are
both ‘edit.html.erb’ and ‘show.html.erb’ templates.

Thanks,

Joe

On Wed, Sep 11, 2013 at 7:00 PM, jmcguckin [email protected] wrote:

In a controller action for ‘show’ is the following:

render :layout => 'edit'

Ok, there a layout for edit, basically it is the standard javascript
includes, anti csfr stuff and ‘yield’.

Hmm, what’s it yielding to? Which template is it yielding to? There are both
‘edit.html.erb’ and ‘show.html.erb’ templates.

It would be yielding to whatever template the controller action would
be using. In this case, that would be show.html.erb, since you’re in
the show action.

-Dave


Dave A., the T. Rex of Codosaurus LLC,
secret-cleared freelance software developer
taking contracts in or near NoVa or remote.
See information at http://www.Codosaur.us/.

On Wed, Sep 11, 2013 at 6:00 PM, jmcguckin [email protected] wrote:

In a controller action for ‘show’ is the following:

render :layout => 'edit'

Ok, there a layout for edit, basically it is the standard javascript
includes, anti csfr stuff and ‘yield’.

Hmm, what’s it yielding to? Which template is it yielding to? There are both
‘edit.html.erb’ and ‘show.html.erb’ templates.

Controller => show.html.erb => edit.html.erb
That’s exactly it: edit.html.erb yields show.html.erb.
Both the layout and the view are templates but the view goes into the
layout.

On 2013-Sep-11, at 19:06 , Dave A. wrote:

‘edit.html.erb’ and ‘show.html.erb’ templates.
taking contracts in or near NoVa or remote.
See information at http://www.Codosaur.us/.

The part that is (probably) causing you to think something’s odd is that
the view is actually processed first. The result and any ‘content_for’
sections have been saved before the layout is processed. The main result
of the view is inserted where the yield is processed and the result of
a content_for :foo will be inserted if there is a yield :foo.

-Rob

Rob B.
[email protected]