Ich versuche, eine von mir geschriebene HTML-Komponente, die das Panel-Styling bietet, wiederzuverwenden. 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>
Ich sehe also, dass das Rendern einen Block braucht. Ich dachte mir dann könnte ich so etwas machen:
# /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 möchte so etwas tun 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 dies mit diesem Fehler nicht:
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 -%>
...
Also mag es das =
offensichtlich nicht mit einem Block, aber wenn ich es entferne, dann gibt es einfach nichts aus.
Weiß jemand, wie man das macht, was ich hier erreichen will? Ich möchte dieses Panel-HTML an vielen Stellen auf meiner Website wiederverwenden.
layout
Problemumgehung möglich ist, sieheguides.rubyonrails.org/…