SORU
1 HAZİRAN 2010, Salı


Render blok ile kısmi raylar

Çalışıyorum yeniden kullanım paneli şekillendirme sağlayan yazdığım bir html bileşeni. Gibi bir şey

  <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>

Bu hale bir blok alır. Böyle bir şey yapabileceğimi düşündüm ki:

# /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>

Ve şöyle bir şey yapmak istiyorum:

#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 %>

Ne yazık ki bu hata ile çalışmıyor:

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 -%>
...

= belli bir blok gibi değil, ama eğer alırsam, o zaman bu hiçbir çıkış yok.

Herkes burada elde etmek için çalışıyorum ne için nasıl biliyor mu? Yeniden kullanım sitemde Bu panel birçok yerde html yapmak istiyorum.

CEVAP
1 HAZİRAN 2010, Salı


İkisi de iş üstünde (tony zaten bağlayan örnek) cevapları ise yukarıda yazılan en kısa ve öz cevabı (Kornelis Sietsma yorum) bulma sona erdi

render :layout yok sanırımtam olarakne aradığım:

# Some View
<%= render :layout => '/shared/panel', :locals => {:title => 'some title'} do %>
  <p>Here is some content</p>
<% end %>

ile birlikte

# /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>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • LimeFire

    LimeFire

    2 ŞUBAT 2012
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008