Шаблон Spree - дефейс условного кода

Я пытаюсь изменить этот файл представления: 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 %>

Is there any other way to achieve my goal? Thank you for the answer!


person Macin    schedule 25.06.2013    source источник


Ответы (1)


Вы можете попробовать использовать свойство набора атрибутов deface, чтобы изменить свойство класса для этого div.

Из документации по дефейсу:

:set_attributes — устанавливает атрибуты для всех элементов, которые соответствуют предоставленному селектору, заменяя существующее значение атрибута, если оно присутствует, или добавляя, если нет. Ожидает передачи опции :attributes

Также для немного другого решения вы можете попробовать селектор CSS для установки ширины:

div.twelve[data-hook="checkout_form_wrapper"] {
  width: something_less_than_what_you_had_before
}
person gmacdougall    schedule 26.06.2013
comment
Единственный вариант, который я могу рассмотреть, это первый. Однако я не уверен в синтаксисе, так как класс, который я хочу изменить, применяется условно. - person Macin; 26.06.2013
comment
В спецификациях для дефейса есть несколько примеров синтаксиса. github.com/spree/deface/blob/master/ спец/дефейс/действия/ - person gmacdougall; 26.06.2013