【问题标题】:Passing options with render partials and checking for them inside those partials传递带有渲染部分的选项并在这些部分中检查它们
【发布时间】:2015-04-27 09:37:23
【问题描述】:

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

伪代码:

views/articles/show.html.erb

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

views/shared/_info.html.erb

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    你应该使用local_assigns:

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

    【讨论】:

    • 好主意!!谢谢!
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      为什么不把数据传入?

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

      views/shared/_info.html.erb

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

      【讨论】:

        猜你喜欢
        • 2015-07-05
        • 2016-01-13
        • 1970-01-01
        • 2011-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多