如何在Ruby on Rails中编写一个帮助程序来捕获Haml块?

pic*_*rdo 8 ruby haml ruby-on-rails helpers

我正在编写一个Rails帮助器方法,它将包装器html添加到捕获的内容块并替换content_for方法,例如

- content_for :header do
 //haml code
Run Code Online (Sandbox Code Playgroud)

..会成为

- content :header do
 //haml code
Run Code Online (Sandbox Code Playgroud)

为了做到这一点,我使用的是Haml和Ruby块.这就是它的样子

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
Run Code Online (Sandbox Code Playgroud)

但我不能让这个工作.没有错误消息.它只是没有显示块!我不确定我做错了什么.我很欣赏第二个意见.

Nat*_*aum 10

你做的大概是正确的,但实际上并没有调用块#content传递.要这样做,要么使用,要么使用block.callRuby的内置yield语句.