Как записать помощнику в Ruby on Rails для получения блоков Haml?

Я пишу вспомогательный метод направляющих, который добавит HTML обертки к полученным блокам содержания и заменит content_for метод, такой как

- content_for :header do
 //haml code

.. стал бы

- content :header do
 //haml code

Чтобы сделать это, я использую блоки Ruby и Haml. Это - то, на что это похоже

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

Но я не могу заставить это работать. Нет никакого сообщения об ошибке. Это просто не показывает блок вообще! Я не уверен, что я делаю неправильно. Я ценил бы второе мнение.

8
задан picardo 14 August 2010 в 23:59
поделиться

1 ответ

Вы поступаете примерно правильно, но на самом деле вы не вызываете переданный блок #content. Для этого используйте либо block.call, либо встроенный в Ruby оператор yield.

10
ответ дан 5 December 2019 в 17:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: