HAML是否可以像在Ruby on Rails中的render_to_string一样进行“捕获”?

nop*_*ole 1 haml ruby-on-rails

我听说HAML具有capture可以执行类似Ruby on Rails的功能的功能render_to_string,但是找不到有关它的信息。实际上,在View中,我们可以使用aString = render :partial ...和render实际使用 render_to_string(与Rail 2.2.2一样)。但是还有一种HAML方式可以做到这一点capture吗?

cri*_*spy 5

是的,您可以使用capture_haml捕获Haml缓冲区。您必须先include Haml::Helpers使用它。

但是,我不确定它是否可用于捕获局部。根据我的理解,我会说Haml独立于render,因此render_to_string或render:partial也应该适用于Haml。

至少,以下将起作用:

str = capture_haml do
  haml_tag "p#feedback.success", "Your request has been successful."
end

str # => "<p id='feedback' class='success'>Your request has been successful.</p>"
Run Code Online (Sandbox Code Playgroud)