2013-06-25 47 views
0

我試圖修改此視圖文件: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 %> 

是否有任何其他的方式來實現我的目標?謝謝你的回答!

回答

0

您可以嘗試使用deface的set attributes屬性來更改該div的類的屬性。

從抹掉文檔:

:set_attributes - 設置屬性對 供給選擇器匹配的所有元素,替換現有的屬性值如果不是(如果存在)或 添加。預計:屬性選項略有不同的解決方案來傳遞

此外,您還可以嘗試CSS選擇器來設置寬度:

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

我可以考慮的唯一選擇是第一位的。但是,我不確定語法,因爲我想修改的類是有條件應用的。 – Macin

+0

在這個規範中有一些關於deface的語法的例子。 https://github.com/spree/deface/blob/master/spec/deface/actions/set_attributes_spec.rb – gmacdougall