在我们的rails 3.2
应用程序中,我们的视图代码(在 simple_form 中)存储@erb_code
并使用内联渲染它:
<%= simple_form_for @project do |f| %>
<%= render inline: ERB.new(@erb_code).result(binding) %>
<% end %>
@erb_code
是一个存储视图代码的字符串。@erb_code 中有一个fields_for
导致错误的块。这是 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()
?