2011-08-24 14 views
6

Öğeler/_item.html.erb'm olduğu raylarda yakut ile bir uygulama oluşturuyorum. Kısmi bir verim ifadesidir, bu yüzden gerektiğinde fazladan içerik ekleyebilirim. Bu durumda, hangi görünümün kısmi olarak adlandırıldığına bağlı olarak belirli bir düğme eklemek istiyorum. İçeriği bir kısmi içinden geçirme = verim

Bu

ne denedim olduğunu ve kısmi hale, ancak blok oluşturma değil:

_item.html.erb

<%= yield if block_given? %> 
<div> 
    <%= item.name %> 
</div> 

someview.html.erb

... 

<% render(:partial => 'items/item', :collection => current_user.items do %> 
    <%= "HELLO" %>  
<% end %> 

... 

Ayrıca, content_for ve diğer bazı şeyleri başarıyla kullanmaya çalıştım. Belirli bir içeriği, verim yoluyla kısmi olarak işleyebilmenin bir yolu var mı? Şu anda raylar 3.

kullanıyorum

DÜZENLEME: imkansız insert blok yapar toplama karma:

Ben olduğunu öğrendim. Kod Bu iş parçalarının

ikisi:

<%= render :layout => 'items/item' do %> 
     Hello world  
<% end %> 

<%= render :layout => 'items/item', :locals => {:item => current_user.items.first} do %> 
    Hello world  
<% end %> 

Bu i .each yaparsam ne istiyorum başarmak olabilir ama çirkin kod olacağı anlamına gelir. Herkes bu konuda bir yol biliyor mu? Bu durumda, iyi çalışmalıdır.

cevap

4

content_for. İşte yerel olarak kontrol ettiğim kod.

somewhere.html.erb

<% content_for :foobar do %> 
    fubar 
<% end %> 

_item.html.erb

<% if content_for? :foobar %> 
    <%= yield :foobar %> 
<% end %> 
+1

Bunu nasıl düzenliyorlar? İçerik_için kodun içinde, üstünde ve etrafının içinde kalmasını sağlamaya çalıştım ve hala içeriklerin kısmi olarak işlenmesini göremiyorum. Çünkü ben de koleksiyonum var mı? – roloenusa

+0

_item.html.erb dosyasında, content_for ifadesini "% content_for: foobar if content_for?" : foobar%> ' – rajkamal

+0

Oluşturma çağrısının nasıl görüneceğinin hızlı bir örneğini atabileceğiniz bir şans var mı? – roloenusa