在 Rails 中,如何将参数传递给“capture”方法?
在 Rails 帮助程序中,您可以使用 capture
方法来捕获
ERB 块的输出。但是,如果 ERB 块需要参数怎么办?在这种情况下我该如何使用capture
?
对于一个虚构的示例:
<% my_helper(:parameter, models) do |model| %>
<%= model.eye_color %>
<% end %>
在 my_helper
方法中,我想用 ...< 包围块每次迭代的输出。 /span>
。
我知道我可以捕获 ERB 块的输出并将其存储在 html = capture(&block)
的变量中,但我不知道如何传递必要的 model< /code> 该块的参数!
In a Rails helper, you can capture
the output of an ERB block using the capture
method. However, what if the ERB block requires a parameter? How can I use capture
in this case?
For a made-up example:
<% my_helper(:parameter, models) do |model| %>
<%= model.eye_color %>
<% end %>
In the my_helper
method, I want to surround the output of each iteration of the block with <span class='color'>...</span>
.
I know I can capture the output of the ERB block and store it in a variable with html = capture(&block)
, but I don't know how to pass the necessary model
parameter to that block!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你不能将它们传递到捕获调用中吗?文档显示它会抛出参数,所以我假设它们被传递到块中。例如:
Can you not pass them into the call to capture? The docs show that it splats arguments, so I would assume they get passed to the block. E.g: