<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>natsuki (夏希)</title>
    <link>https://ruby-china.org/natsuki</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>问一个 helper 的写法</title>
      <description>&lt;p&gt;假设我经常在 view 页面里面有如下代码&lt;/p&gt;

&lt;p&gt;&amp;lt;%=content_for?(:block_name)? yield(:block_name):render(partial: "block_name_default")%&amp;gt;&lt;/p&gt;

&lt;p&gt;于是我想把这段提取到一个 helper 里面去
大致是这样&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;ApplicationHelper&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;cascading_block&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;block_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;default_tpl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;
        &lt;span class="n"&gt;content_for?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;block_name&lt;/span&gt;&lt;span class="p"&gt;)?&lt;/span&gt;&lt;span class="k"&gt;yield&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;block_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="ss"&gt;:render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;partitial&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"default_tpl"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt; 
&lt;span class="k"&gt;end&lt;/span&gt;




&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是这个时候 yield 跟在 view 里面的 yield 不一样了，请问需要怎样处理这种情况？ &lt;/p&gt;</description>
      <author>natsuki</author>
      <pubDate>Tue, 13 Mar 2012 13:31:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/1832</link>
      <guid>https://ruby-china.org/topics/1832</guid>
    </item>
  </channel>
</rss>
