传递具有渲染部分的选项并在这些部分中检查它们

时间:2015-04-27 09:37:24

标签: ruby-on-rails

我需要为某些渲染部分设置一些选项,然后在这些部分中检查它们。如何实现如下所示?

伪代码:

视图/物品/ show.html.erb

<%= render partial: "shared/info", locals: { from_apples: true } %>
<%= render partial: "shared/info", locals: { from_bananas: true } %>

视图/共享/ _info.html.erb

<% if from_apples %>
  <p>Foo</p>
<% elsif from_bananas %>
  <p>Bar</p>
<% end %>

3 个答案:

答案 0 :(得分:1)

您应该使用local_assigns

<% if local_assigns[:from_apples] %>
  <p>Foo</p>
<% elsif local_assigns[:from_bananas] %>
  <p>Bar</p>
<% end %>

答案 1 :(得分:1)

为苹果创建两个部分,为香蕉创建一个。而不是传递本地人调用那些部分文件。

<%= render partial: "shared/info/apples" %>
<%= render partial: "shared/info/bananas" %>

答案 2 :(得分:1)

为什么不传递数据?

<%= render partial: "shared/info", locals: { message: "foo" } %>
<%= render partial: "shared/info", locals: { message: "bar" } %>

视图/共享/ _info.html.erb

<p><%= message %></p>