gpt4 book ai didi

ruby-on-rails - 从字符串编译 ERB 代码时出错

转载 作者:行者123 更新时间:2023-12-01 23:49:07 25 4
gpt4 key购买 nike

我正在为我的 View 助手 (Rails 4.0) 编写一些测试,并尝试将 ERB 代码编译成一个字符串来执行它。但是,为了简单起见,我在这里使用了在 Rails 表单助手中找到的常用方法,但收到了相同的错误:

Failure/Error: ERB.new(template).result
SyntaxError:
(erb):1: syntax error, unexpected ')'
...out.concat(( field_set_tag do ).to_s); _erbout.concat "\n\t\...
... ^
(erb):4: syntax error, unexpected end-of-input, expecting ')'
; _erbout.force_encoding(__ENCODING__)
^

这是我正在执行的代码:

template = <<-TEMPLATE
<%= field_set_tag do %>
Lorem Ipsum
<% end %>
TEMPLATE

ERB.new(template).result

我找到了一些使用 <% 的建议而不是 <%=但这导致 Lorem Ipsum作为唯一的输出。我也尝试过使用 HAML 而不是 ERB,但得出了类似的结果。

如何让我的模板输出 <fieldset>Lorem Ipsum</fieldset>使用 field_set_for字符串中的助手?

最佳答案

“普通”Eruby 不允许使用 <%= 的表达式以 Rails 使用它们的方式阻止。 rails extends the Erubis Eruby handler to add support for them .您的测试只是尝试直接使用 Erb,因此不提供此支持。

您需要确保已加载此支持才能正常工作。我可以让它工作:

ActionView::Template::Handlers::Erubis.new(template).evaluate(ActionView::Base.new)

虽然我不知道这是不是最好的方法。查看 RSpec 文档,可能有更好的方法来测试像这样的部分 View 。

关于ruby-on-rails - 从字符串编译 ERB 代码时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27465389/

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