gpt4 book ai didi

ruby-on-rails - 如何逃脱|对于 ERB 中的 RAILS fields_for?

转载 作者:行者123 更新时间:2023-12-04 04:42:54 25 4
gpt4 key购买 nike

在我们的 rails 3.2 app,我们的 View 代码(以 simple_form)存储在 @erb_code并将其内联渲染为:

<%= simple_form_for @project do |f| %>

<%= render inline: ERB.new(@erb_code).result(binding) %>

<% end %>
@erb_code是一个存储 View 代码的字符串。有一个 fields_for阻止@erb_code 导致错误。这是 fields_for 块:
  .........
<%= f.simple_fields_for :contract do |builder| %>
<%= render('contract', :f => builder)%>
<% end %>
........

这是错误:
(erb):17: syntax error, unexpected ')'
...ds_for :contract do |builder| ).to_s); _erbout.concat " ...
... ^
(erb):21: syntax error, unexpected end-of-input, expecting ')'
...ut.force_encoding(__ENCODING__)
...
).to_s在 |builder| 之后添加渲染时,这些会导致错误。是逃避问题吗?如果是,如何逃生 |builder|和/或 ERB.new() 中的任何其他内容?

最佳答案

请尝试以下操作:

<%= simple_form_for @project do |f| %>

<%= render inline: @erb_code, locals: {f: f} %>

<% end %>

即,不使用 ERB.new。根据需要添加更多本地人。

过去,我在 Rails 3.2.13 中出于类似目的使用了内联渲染。

关于ruby-on-rails - 如何逃脱|对于 ERB 中的 RAILS fields_for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618252/

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