所以我希望能够编写一个 Rails 助手,它可以将视图的块作为参数(很确定这是不可能的),或者改变块内助手的操作方式。理想情况下(但我很确定这是不可能的),我可以执行以下操作,其中 top_context_builder 然后使用对应于 firstcontent 和 secondcontent 的 proc/block 参数执行(例如,也许我想在输出中将它们交错为 firstcontent secondcontent secondcontent firstcontent)
<%= top_context builder: foo_builder, argone: %>
firstcontent
<% argtwo: %>
secondcontent
<% end %>
但似乎更合理的是,也许我可以将上下文注入我正在执行的块中。那么有什么方法可以让 top_context 将参数提供给帮助器 get_first_context 和 get_second_context 然后 get_first_context 将它的块参数存储在 top_context 设置的某个位置,这样 get_second_context 就可以访问生成器 arg,一个用于 firstcontent 的过程/块和第二内容的过程/块?
<%= top_context builder: foo_builder do %>
<%= get_first_context do %>
firstcontent
<% end %>
<%= get_second_context do %>
secondcontent
<% end %>
<% end %>
问题是如何在不污染全局变量的情况下将构建器 arg 和 firstcontent 设置为 get_second_context(例如,我可以以嵌套方式使用它)。我可能很愚蠢,但会很感激任何想法。
(是的,我想我可以使用 content_for 并将这些东西保存到标识符中,但如果我想以嵌套方式使用帮助器,这似乎会导致名称冲突)。