Wie schreibt man einen Helfer in Ruby on Rails zu erfassen Haml-Blöcke?
Schreibe ich ein Rails-helper-Methode, die wird hinzufügen von html-wrapper auf die aufgezeichneten Inhalte blockiert und ersetzen content_for Methode, wie
- content_for :header do
//haml code
..würde
- content :header do
//haml code
Um dies zu tun, ich bin mit Haml und Ruby-Blöcke. Dies ist, was es sieht aus wie
def content(name,&block)
content_for name do
capture_haml do
haml_tag "div",{:id=>name.to_s} do
haml_tag "div",{:id=>"#{name.to_s}_group"} do
block
end
end
end
end
end
Aber ich kann nicht ankommen dieses zu wirken. Es gibt keine Fehlermeldung. Das sieht man nur nicht den block an alle! Ich bin mir nicht sicher, was ich falsch mache. Würde ich mich über eine zweite Meinung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du machst das so ungefähr die richtige Sache, aber Sie sind nicht eigentlich Aufruf des Bausteins
#content
übergeben wird. Dies zu tun, verwenden Sie entwederblock.call
oder Ruby ' s eingebauteyield
- Anweisung.ändern Sie einfach diese
zu
&block
version kann etwas mehr Leistung bietet, aber in diesen Tagen Sie sind in etwa gleich.) Wie @nex3 Punkte aus, obwohl die OP nicht aufrufenyield
, wurde aber einfach Rücksendung derblock
ohne ihn aufzurufen.