在 Rails 中,如何将参数传递给“capture”方法?

发布于 2024-11-27 16:49:15 字数 515 浏览 0 评论 0原文

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏尔 2024-12-04 16:49:15

你不能将它们传递到捕获调用中吗?文档显示它会抛出参数,所以我假设它们被传递到块中。例如:

html = capture(:foo, :bar, &block)

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:

html = capture(:foo, :bar, &block)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文