Note that there are some explanatory texts on larger screens.

plurals
  1. PORails weird capture block error
    text
    copied!<p>I have a helper method 'default_content_for' which can be used to provide default content for yield sections. However when I'm using it, I get weird output from the helper. </p> <p>I'm pretty sure I'm probably missing something simple, but still not sure what is wrong.</p> <p>The title ends up full of stuff above the beginning of the block. Like so: </p> <pre><code>&lt;title&gt; Default Title&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;title&amp;gt; Default Title &lt;/title&gt; </code></pre> <p>application.html.erb</p> <pre><code>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt; &lt;% default_content_for :title do %&gt; Default Title &lt;% end %&gt; &lt;/title&gt; &lt;%= stylesheet_link_tag :all %&gt; &lt;%= javascript_include_tag :defaults %&gt; &lt;%= csrf_meta_tag %&gt; &lt;/head&gt; &lt;body&gt; &lt;%= yield %&gt; &lt;/body&gt; &lt;/html&gt; &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt; &lt;% default_content_for :title do %&gt; Default Title &lt;% end %&gt; &lt;/title&gt; &lt;%= stylesheet_link_tag :all %&gt; &lt;%= javascript_include_tag :defaults %&gt; &lt;%= csrf_meta_tag %&gt; &lt;/head&gt; &lt;body&gt; &lt;%= yield %&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>helper method</p> <pre><code>module ApplicationHelper def default_content_for(name, &amp;block) name = name.kind_of?(Symbol) ? ":#{name}" : name out = eval("yield #{name}", block.binding) out = (out ? (out.empty? ? false : out): false) || capture(&amp;block) concat(out) end end </code></pre> <p>output</p> <pre><code>&lt;!DOCTYPE html&gt; &lt;html&gt;&lt;head&gt; &lt;title&gt; Default Title&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;title&amp;gt; Survey Builder &lt;/title&gt; &lt;script type="text/javascript" src="/javascripts/prototype.js?1314309079"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="/javascripts/effects.js?1314309079"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="/javascripts/dragdrop.js?1314309078"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="/javascripts/controls.js?1314309078"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="/javascripts/rails.js?1314309079"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="/javascripts/application.js?1314309078"&gt;&lt;/script&gt; &lt;meta content="authenticity_token" name="csrf-param"&gt; &lt;meta content="oG4mVUt5wy6aWdhbxmXa3tYh3DUgXVUQy9d6uxng6a0=" name="csrf-token"&gt; &lt;/head&gt; &lt;body&gt; &lt;div id="user_nav"&gt; Logged in as KARL KIRCH &lt;a href="/log_out"&gt;Log out&lt;/a&gt; &lt;/div&gt; &lt;h1&gt;Home#index&lt;/h1&gt; &lt;p&gt;Find me in app/views/home/index.html.erb&lt;/p&gt; &lt;/body&gt;&lt;/html&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload