如何直接打印到HAML缓冲区?

问题描述 投票:0回答:1

我正在尝试这个(haml 6.3.0):

def my_helper
  Haml::Helpers.html_concat('Hello, world!')
end

然后,在

my.haml
我这样做:

- my_helper

但是,我得到:

NoMethodError: undefined method `html_concat' for Haml::Helpers:Module

什么是正确的方法?请不要建议使用

= my_helper
。我的实际情况要复杂得多,我确实需要直接打印到缓冲区而不是返回字符串。

ruby haml
1个回答
0
投票

根据变更日志

,功能 
haml_concat 在 6.0.0 中被删除。该函数使用了修改内部缓冲区的方法,并且更新日志显示这部分 API 在 6.0.0 后已被删除,并且没有替代方案:

依赖于

Haml::Buffer

的人在设计上没有直接的替代方案。它们的存在是以性能为代价的。您需要定义一个助手,在其中实例化一个字符串缓冲区,向其中追加内容,然后在内部调用它
=

所以看起来没有

=

 就无法再写入 Haml 缓冲区了。

© www.soinside.com 2019 - 2024. All rights reserved.