使用ERB变量来干扰html

时间:2016-12-25 22:58:34

标签: ruby-on-rails ruby erb

我想用以下内容干掉我的ERB:

<div>
  <section class="item">
    +
    <%= render partial: "layouts/list-item" %>
  </section>
  <section class="item">
    +
    <%= render partial: "layouts/list-item" %>
  </section>
  <section class="item">
    +
    <%= render partial: "layouts/list-item" %>
  </section>
</div>

我想做这样的事情,不必重复自己,但这是一个错误。我是否必须使用for循环?     

</div>
  <% item = '      <section class="item">
          +
          <%= render partial: "layouts/list-item" %>
        </section>'
  %>
  <%= item * 3 %>
</div>

1 个答案:

答案 0 :(得分:2)

您可以使用:

<div>
  < ["", "+", "+"].each do |item| >
    <section class="item">
      <%= item >
      <%= render partial: "layouts/list-item" %>
    </section>
  < end >
</div>

对于任何更复杂的事情,您可以在控制器中定义实例变量,并在视图中使用基本逻辑(如本例中的循环)来显示这些变量中的数据。

数据应该来自模型,通过控制器,html元素应该在视图或帮助器中。