HAML可以做一个“捕获”,有点像Ruby on Rails中的render_to_string吗?

时间:2010-08-09 23:16:10

标签: ruby-on-rails haml

我听说HAML有一个capture函数可以执行类似Ruby on Rails的render_to_string,但无法找到它的信息。实际上,在View中,我们可以使用aString = render :partial ...,而render实际上与render_to_string的工作方式相同(如在Rail 2.2.2中)。但是,capture还有一种HAML方式吗?

1 个答案:

答案 0 :(得分:5)

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

但是,我不确定它是否适用于捕获部分内容。根据我的理解,我会说Haml独立于渲染,因此,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>"