Schienen rendern teilweise mit Block

Ich versuche zu re-verwenden Sie eine html-Komponente, die ich geschrieben habe, stellt panel-styling. So etwas wie:

  <div class="v-panel">
    <div class="v-panel-tr"></div>
    <h3>Some Title</h3>
    <div class="v-panel-c">
      .. content goes here
    </div>
    <div class="v-panel-b"><div class="v-panel-br"></div><div class="v-panel-bl"></div></div>
  </div>

So sehe ich, dass das Rendern dauert ein block. Ich dachte, dann könnte ich so etwas tun:

# /shared/_panel.html.erb
<div class="v-panel">
  <div class="v-panel-tr"></div>
  <h3><%= title %></h3>
  <div class="v-panel-c">
    <%= yield %>
  </div>
  <div class="v-panel-b"><div class="v-panel-br"></div><div class="v-panel-bl"></div></div>
</div>

Und ich will so etwas wie:

#some html view
<%= render :partial => '/shared/panel', :locals =>{:title => "Some Title"} do %>
  <p>Here is some content to be rendered inside the panel</p>
<% end %>

Leider funktioniert das nicht mit diesem Fehler:

ActionView::TemplateError (/Users/bradrobertson/Repos/VeloUltralite/source/trunk/app/views/sessions/new.html.erb:1: , unexpected tRPAREN

old_output_buffer = output_buffer;;@output_buffer = '';  __in_erb_template=true ; @output_buffer.concat(( render :partial => '/shared/panel', :locals => {:title => "Welcome"} do ).to_s)
on line #1 of app/views/sessions/new.html.erb:
1: <%= render :partial => '/shared/panel', :locals => {:title => "Welcome"} do -%>
...

Damit es nicht, wie die = offensichtlich mit einem block, aber wenn ich es entfernen, dann ist es eben nichts ausgibt.

Weiß jemand, wie das zu tun, was ich versuche hier zu erreichen? Ich möchte zu re-verwenden Sie dieses Fenster, html an vielen stellen auf meiner Website.

InformationsquelleAutor der Frage brad | 2010-06-01

Schreibe einen Kommentar