Determining whether yields have content

Hey All,
I would like some logic that would help me determine whether a yield
has
any content to it. For example:

<%= yield :submenu %>

I only want to display the div around the yield if the yield will have
content.

Any ideas?

Thanks,
Jim

Just confirming, its expensive since it renders the yield twice,
correct?
What if i did something like:

<% yield_contents = yield(:submenu)
if !yield_contents.strip.blank? -%>

<%= yield_contents %>
<% end -%>

Would that work?

I guess I never realized that I could yield twice. Thanks for the tip.
Much
appreciated.

On Jan 4, 2009, at 7:18 PM, James E. wrote:

Any ideas?

You can do:

<% if !yield(:submenu).strip.blank? -%>

<%= yield :submenu %>
<% end -%>

The call may be expensive so you might want to create some other
method of determining whether the submenu is likely to have content.
But this should work.

HTH

On Jan 4, 2009, at 8:47 PM, James E. wrote:

Just confirming, its expensive since it renders the yield twice,
correct? What if i did something like:

<% yield_contents = yield(:submenu)
if !yield_contents.strip.blank? -%>

<%= yield_contents %>
<% end -%>

That should work. A different solution altogether would be to have the
submenu contain the div wrapper so you can make the test there and
eliminate all the gnarly logic in your layout.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs