【发布时间】:2016-12-27 19:54:09
【问题描述】:
我目前正在为 gem 开发 ERB View 类。有了这个类,我想有一些 ERB 模板的辅助方法。
像h(string) 这样的基本助手没关系。我找到了erbh gem,他帮助我更多地了解上下文的工作原理。
但现在我正在尝试创建一个 content_for 方法,就像在 Rails 或 Sinatra 中一样。
我第一次使用简单的Proc 来捕获视图块,然后调用call 方法来打印它。一开始就够用了。
但是在完成视图后,我看到了有线的想法,有些内容被打印了多次。
所以我看了一下Sinatra ContentFor helper 以了解他们是如何做到的,我复制了这个助手的一些方法。我没有错误,但块返回总是空的......我真的不知道为什么。
我对 ERB 的了解不足以了解 ERB 缓冲的工作原理。
代码
这里有一个解释我的代码状态的要点。我从我的库中提取了代码并对其进行了一些简化。
我想要什么?
我只想让content_for 方法像在 Rails 和 Sinatra 中一样工作。
谢谢!
【问题讨论】: