<%= render layout: "shared/some_template",
locals: {
variable_value: true
} do %>
<%= hidden_field_tag "ids[]", "ng-value": "sth.id" %>
<% end %>
某些模板上的模板有一些html和一个yield调用,其中&#34;隐藏&#34;字段应该去,但它没有呈现它,它确实渲染模板中的其他所有内容,它只是删除hidden_field_tag部分。
我知道如何解决这个问题?当我试用它时,它适用于HAML版本,但不适用于ERB,是否不适用于ERB?
答案 0 :(得分:1)
您正在将&block
传递给render
,而lambda
对此无效。
要将回调传递给部分,请构建<%=
lamb = lambda{ hidden_field_tag 'ids[]', 'ng-value' => 'sth.id' }
locals = { variable_value: true, callback: lamb }
render layout: 'shared/some_template', locals: locals
%>
并将其放入局部变量中:
<%= callback.call %>
现在在模板中调用'
。
(注意,顺便说一下,我使用"
代替"
,因为我们没有使用locals
的特殊功能。请注意我引入了一个局部变量{{1而不是创造性地缩进render
调用。)