首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用污点覆盖狂野管理视图

用污点覆盖狂野管理视图
EN

Stack Overflow用户
提问于 2014-12-05 20:52:00
回答 1查看 2.2K关注 0票数 3

我试图添加几行狂欢管理。

我想重写的文件:

代码语言:javascript
复制
backend/app/views/spree/admin/orders/_shipment.html.erb

我想在这里补充一下:

代码语言:javascript
复制
<tr class="show-tracking total">
        <td colspan="5" class="tracking-value">
          <% if shipment.tracking.present? %>
            <strong><%= Spree.t(:tracking) %>:</strong> <%= shipment.tracking %>
          <% else %>
            <%= Spree.t(:no_tracking_present) %>
          <% end %>
        </td>
      </tr>

我的覆盖范围是:

代码语言:javascript
复制
<!-- insert_after '.tracking-value' -->
</br>
<strong><%= Spree.t(:is_delivered) %>: </strong><%= shipment.is_delivered %></br>
  <% if shipment.date_delivered? %>
    <strong><%= Spree.t(:date_delivered) %>: </strong><%= shipment.date_delivered %></br>
  <% end %>

位于app/overrides/spree/admin/orders/shipment/add_tracking_info.html.erb.deface

内容:

代码语言:javascript
复制
</br>
<strong><%= Spree.t(:is_delivered) %>: </strong><%= shipment.is_delivered %></br>
  <% if shipment.date_delivered? %>
    <strong><%= Spree.t(:date_delivered) %>: </strong><%= shipment.date_delivered %></br>
  <% end %>

我想提出:

代码语言:javascript
复制
<tr class="show-tracking total">
        <td colspan="5" class="tracking-value">
          <% if shipment.tracking.present? %>
            <strong><%= Spree.t(:tracking) %>:</strong> <%= shipment.tracking %>
            </br>
           <strong><%= Spree.t(:is_delivered) %>: </strong><%= shipment.is_delivered %</br>
          <% if shipment.date_delivered? %>
            <strong><%= Spree.t(:date_delivered) %>: </strong><%= shipment.date_delivered %></br>
          <% end %>
          <% else %>
            <%= Spree.t(:no_tracking_present) %>
          <% end %>
        </td>
      </tr>

任何有关这个问题的帮助都将不胜感激,非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-06 15:28:19

你错过了一步。以一种非常抽象的方式,你需要告诉狂欢节你需要插入什么。

代码语言:javascript
复制
Deface::Override.new(
  virtual_path: 'spree/admin/shared/_order_summary',    
  name:         'admin_order_custom_details',
  insert_after: 'header#order_tab_summary > dl.additional-info',
  partial:      'spree/admin/shared/admin_order_custom_details'
)

下面的内容是从我一直工作到昨天的一个项目中复制的。什么是指示'spree/admin/shared/admin_order_custom_detailsjust after the dom element identified byheader#order_tab_summary添加部分Deface >dl.add-info``。

所以在我看来你需要做的是

  1. html.erb.deface更改为html.erb,并将其移动到类似于app/views/spree/admin/orders/add_order_detials_to_shipment.html.erb的位置
  2. app/overides/中创建一个新文件(扰流板警告,让它成为有意义的警告或后悔以后)
  3. 找到标识符(只要看一下就知道了,我想是像erb[silent]:contains('if shipment.tracking.present?')这样的东西
  4. 使用insert_bottom而不是insert_after

我没有运行这个,但我相信这是你要找的。

代码语言:javascript
复制
Deface::Override.new(
  virtual_path:  'app/views/spree/admin/orders/_shipment',    
  name:          'add_order_detials_to_shipment', # Or a fancy unique name
  insert_bottom: "erb[silent]:contains('if shipment.tracking.present?')",
  partial:       'app/views/spree/admin/orders/add_order_detials_to_shipment'
)

PS

在阅读了文档的这一部分(我不知道其中有一个DSL )之后,我认为您需要更新DSL,以便

代码语言:javascript
复制
<!-- insert_bottom "erb[silent]:contains('if shipment.tracking.present?')" -->
</br>
<strong><%= Spree.t(:is_delivered) %>: </strong><%= shipment.is_delivered %></br>
<% if shipment.date_delivered? %>
  <strong><%= Spree.t(:date_delivered) %>: </strong><%= shipment.date_delivered %></br>
<% end %>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27324465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档