Ruby on rails 为什么此块不适用于我的ERB模板

Ruby on rails 为什么此块不适用于我的ERB模板,ruby-on-rails,erb,Ruby On Rails,Erb,某些模板上的模板有一些html和一个yield调用,其中“hidden”字段应该位于其中,但它没有呈现它,它确实呈现了模板中的所有其他内容,它只是删除了hidden_field_标记部分 你知道我该怎么解决这个问题吗?当我尝试它时,它在HAML版本上工作,但在ERB上不工作,这对ERB不可用吗?您正在将一个&block传递到渲染,这对它没有任何作用 要将回调传递给分部,请构建一个lambda,并将其放入局部变量中: <%= render layout: "shared/some_templ

某些模板上的模板有一些html和一个yield调用,其中“hidden”字段应该位于其中,但它没有呈现它,它确实呈现了模板中的所有其他内容,它只是删除了hidden_field_标记部分


你知道我该怎么解决这个问题吗?当我尝试它时,它在HAML版本上工作,但在ERB上不工作,这对ERB不可用吗?

您正在将一个
&block
传递到
渲染
,这对它没有任何作用

要将回调传递给分部,请构建一个
lambda
,并将其放入局部变量中:

<%= render layout: "shared/some_template", 
      locals: {
               variable_value: true 
              } do %>
   <%= hidden_field_tag "ids[]", "ng-value": "sth.id" %>
<% end %>
'sth.id'}
局部变量={variable_value:true,callback:lamb}
渲染布局:“共享/某些模板”,局部变量:局部变量
%>
现在在模板调用中


(请注意,顺便说一句,我使用了
而不是
,因为我们没有使用
的特殊功能。请注意,我引入了一个局部变量,
locals
,而不是创造性地缩进
render
调用。)

出于好奇,将所有这些都放在一个模板中会让你觉得奇怪吗?我以前曾向部分模板传递过回调。视图应该是哑-胖,但哑的。仅仅因为,为什么它与HAML一起工作而不与ERB一起工作?它只是HAML上的一个特性吗?
<%= 
  lamb = lambda{ hidden_field_tag 'ids[]', 'ng-value' => 'sth.id' }
  locals = { variable_value: true, callback: lamb }
  render layout: 'shared/some_template', locals: locals
 %>