Comment une méthode auxiliaire cède-t-elle à un bloc dans les rails 3?

J'ai utilisé ce modèle pour un certain nombre d'aides dans les rails 2, mais ce n'est pas le même dans rails 3. Mon but est d'avoir une méthode d'assistance à générer des balises html avec le contenu imbriqué à l'intérieur. Voici un exemple de base de ce que j'essaie de faire:

<div class="box">
  my content
</div>

Dans les rails 2 je fais comme ça:

à l'intérieur de mon fichier de layout que j'appelle la méthode d'assistance:

  <% box_wrapper do %>
    <%= yield -%>
  <% end %>

L'aide de la méthode est définie comme ceci:

def box_wrapper
  concat <<-EOF.html_safe
    <div class="box">
  EOF

  yield  if block_given?
  concat <<-EOF.html_safe
    </div>
  EOF
end

Mais dans rails 3, lorsque la vue est rendue sorties de l'ensemble de ma page et ensuite à l'intérieur de la box_wrapper il rend tout le contenu de la page une 2ème fois.

Je pense que je suis absent quelque chose d'évident avec l'utilisation des aides et des rendements. Des idées?

source d'informationauteur nimblegorilla