Ruby on rails spree home索引中的污损

Ruby on rails spree home索引中的污损,ruby-on-rails,spree,deface,Ruby On Rails,Spree,Deface,我正在尝试使用Deface的DSL在spree的主页索引中添加一些内容 我在app/overrides/spree/home/index/add\u home\u index\u steps.html.erb.deface上有一个文件 内容如下: <!-- insert_before 'erb:contains("content_for :sidebar do")' --> <h1>Hola</h1> 赫拉 但结果是: <div id=wrappe

我正在尝试使用Deface的DSL在spree的主页索引中添加一些内容

我在app/overrides/spree/home/index/add\u home\u index\u steps.html.erb.deface上有一个文件 内容如下:

<!-- insert_before 'erb:contains("content_for :sidebar do")' -->
<h1>Hola</h1>

赫拉
但结果是:

<div id=wrapper" class="row" data-hook>
  <aside id="sidebar" class="columns four" data-hook>
    <div data-hook="homepage_sidebar_navigation">...</div>
  </aside>
  <div id="content" class="columns twelve" data-hook>
    <h1>Hola</h1>
    <div data-hook="homepage_products">...</div>
  </div>
</div>
<div id=wrapper" class="row" data-hook>
  <aside id="sidebar" class="columns four" data-hook>
    <h1>Hola</h1>
    <div data-hook="homepage_sidebar_navigation">...</div>
  </aside>
  <div id="content" class="columns twelve" data-hook>
    <div data-hook="homepage_products">...</div>
  </div>
</div>

赫拉
...
...
如果我使用insert_after而不是insert_before,结果是:

<div id=wrapper" class="row" data-hook>
  <aside id="sidebar" class="columns four" data-hook>
    <div data-hook="homepage_sidebar_navigation">...</div>
  </aside>
  <div id="content" class="columns twelve" data-hook>
    <h1>Hola</h1>
    <div data-hook="homepage_products">...</div>
  </div>
</div>
<div id=wrapper" class="row" data-hook>
  <aside id="sidebar" class="columns four" data-hook>
    <h1>Hola</h1>
    <div data-hook="homepage_sidebar_navigation">...</div>
  </aside>
  <div id="content" class="columns twelve" data-hook>
    <div data-hook="homepage_products">...</div>
  </div>
</div>

这很容易让人困惑,所以让我们看看发生了什么。边栏代码为:

内容可以在这个文件中的任何一点上出现,这其实并不重要,因为它只是说明了收益率中的内容。因此,在输出中,它将出现在homepage_products div之前,这是您在输出中得到的内容

在执行以下操作后插入_:

<% content_for :sidebar do %>
  <h1>Hola</h1>
  <!-- stuff that goes in to the sidebar -->
<% end %>

<div data-hook="homepage_products">...</div>

赫拉
...
所以我希望它会出现在正在生成的部分中。大概是这样的:

<aside id="sidebar" class="columns four" data-hook>
  <h1>Hola</h1>
  <!-- stuff that goes in to the sidebar -->
</aside>

赫拉
这也是你看到的

如果您希望某个内容显示在侧边栏之前,如您的示例中所示,则应该执行不同的覆盖。您应该覆盖
spree/shared/_侧栏
,并在
侧栏
之前插入_

希望能把事情弄清楚

<% content_for :sidebar do %>
  <h1>Hola</h1>
  <!-- stuff that goes in to the sidebar -->
<% end %>

<div data-hook="homepage_products">...</div>
<aside id="sidebar" class="columns four" data-hook>
  <h1>Hola</h1>
  <!-- stuff that goes in to the sidebar -->
</aside>