2010-08-14 8 views
8

Ben content_for yöntemi yakalanan içerik bloklarına sarıcı html ekleme ve yerini alacak bir Raylar yardımcı yöntemi, yazıyorum gibiHaml bloklarını yakalamak için Ruby on Rails'e nasıl yardım yazılır?

- content_for :header do 
//haml code 

Ben bu yapabilmek için

- content :header do 
//haml code 

haline ..would Haml ve Ruby bloklarını kullanarak. Bu,

Göründüğü gibi bu işe yaramaz. Hata mesajı yok. Sadece bloğu göstermiyor! Ne yapıyorum emin değilim. İkinci bir fikre değer veriyorum.

cevap

10

Kabaca doğru olanı yapıyorsunuz, ancak aslında blok #content iletildi. Bunu yapmak için block.call veya Ruby'nin yerleşik yield ifadesini kullanın. Bu iki aslında davranışlarında tam eşdeğerdir bu

haml_tag "div",{:id=>"#{name.to_s}_group"} do 
    yield 
end 

haml_tag "div",{:id=>"#{name.to_s}_group"},&block 
0

sadece değiştirin. ('& Block' sürümü biraz daha fazla performans gösterebilir, ancak bu günlerde bunlar aynıdır.) As @ nex3 dikkat çekiyor olsa da, OP 'getiri' demiyordu, ancak sadece 'block' kelimesini çağırıyor.
+0

için – Peeja