gpt4 book ai didi

ruby - 在 erb 中使用 block (Sinatra,不是 Rails)

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:43 24 4
gpt4 key购买 nike

我想在 erb 中使用 ruby​​ block /产量概念(具体来说,以便我可以使用 form_helpers)。当我这样做时,我得到了语法错误,但不是在我的 erb 代码中;在处理完 erb 后的输出代码中。

例如,假设我有以下助手:

def test_method   # assume this returns some string
yield if block_given?
end

我有这个 erb 代码:

<%= test_method do %>
<h1>asdf</h1>
<% end %>

结果是:

语法错误,意外的 ')' ; @_out_buf.concat(( test_method do ).to_s)

我知道第一行独立于其他行转换为代码。我不明白的是为什么或如何解决它。谢谢!


ruby :1.9.3-p392

西纳特拉:1.42

还有什么我可以提供的吗?

最佳答案

只需在 erb 中调用 test_method 之前删除输出助手,这样它看起来像:

<% test_method do %>

= helper 期望给出单行表达式,而不是多行表达式。

可以找到更多详细信息here , herehere .

关于ruby - 在 erb 中使用 block (Sinatra,不是 Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18921478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com