【问题标题】:Spree template - deface conditional codeSpree 模板 - 破坏条件代码
【发布时间】:2013-06-25 21:37:35
【问题描述】:

我正在尝试修改这个视图文件:https://github.com/spree/spree/blob/master/frontend/app/views/spree/checkout/edit.html.erb

我要做的就是在这一行修改一个十二到十级:

 <div class="columns <%= if @order.state != 'confirm' then 'alpha twelve' else 'alpha omega sixteen' end %>" data-hook="checkout_form_wrapper">

最好的方法是什么?我能想出的唯一解决方案是使用以下污损脚本,但这似乎不是很好的方法:

<!-- replace '[data-hook="checkout_content"]' -->
<div class="row" data-hook="checkout_content">
<div class="columns <%= if @order.state != 'confirm' then 'alpha ten' else 'alpha omega sixteen' end %>" data-hook="checkout_form_wrapper">
  <%= form_for @order, :url => update_checkout_path(@order.state), :html => { :id => "checkout_form_#{@order.state}" } do |form| %>
    <% unless @order.email? %>
      <p class="field" style='clear: both'>
        <%= form.label :email %><br />
        <%= form.text_field :email %>
      </p>
    <% end %>
    <%= render @order.state, :form => form %>
  <% end %>
</div>
<% if @order.state != 'confirm' %>
  <div id="checkout-summary" data-hook="checkout_summary_box" class="columns omega six">
    <%= render :partial => 'summary', :locals => { :order => @order } %>
  </div>
<% end %>

还有其他方法可以实现我的目标吗?谢谢你的回答!

【问题讨论】:

    标签: ruby-on-rails spree deface


    【解决方案1】:

    您可以尝试使用 deface 的 set attributes 属性来更改该 div 的类的属性。

    来自污损文档:

    :set_attributes - 在所有匹配的元素上设置属性 提供的选择器,如果存在则替换现有的属性值或 如果没有,请添加。期望 :attributes 选项被传递

    对于稍微不同的解决方案,您可以尝试使用 CSS 选择器来设置宽度:

    div.twelve[data-hook="checkout_form_wrapper"] {
      width: something_less_than_what_you_had_before
    }
    

    【讨论】:

    猜你喜欢
    • 2020-09-04
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    相关资源
    最近更新 更多