我正在尝试这个(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
。我的实际情况要复杂得多,我确实需要直接打印到缓冲区而不是返回字符串。
根据变更日志
,功能
haml_concat
在 6.0.0 中被删除。该函数使用了修改内部缓冲区的方法,并且更新日志显示这部分 API 在 6.0.0 后已被删除,并且没有替代方案:
依赖于所以看起来没有
Haml::Buffer
的人在设计上没有直接的替代方案。它们的存在是以性能为代价的。您需要定义一个助手,在其中实例化一个字符串缓冲区,向其中追加内容,然后在内部调用它=
。
=
就无法再写入 Haml 缓冲区了。