为什么此块无法在我的ERB模板上运行

时间:2018-06-12 21:43:19

标签: ruby-on-rails erb

<%= 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?

1 个答案:

答案 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调用。)