2017-08-09 61 views
0

所以在我的代码有14行如下:使用Spree Deface覆盖,如何更改提交标记的CSS类?

应用程序/视图/大礼包/共享/ _search.html.erb

<%= submit_tag Spree.t(:search), name: nil, class: "btn btn-danger" %> 

和:

应用程序/重写/ edit_header.rb

Deface::Override.new(
    :virtual_path => "spree/shared/_search", 
    :name   => "set_button_to_green", 
    :set_attributes => "erb[loud]:contains('submit_tag')", 
    :attributes  => { :class => "btn btn-info" } 
) 

,虽然它八九不离十工作,这里有结果:

前:

enter image description here

后:

enter image description here

我已经花了几个小时今天试图解决这个问题,我还没有找到任何答案是明确解决我的问题。目前我有一个解决方法,但理解这个问题真的会加快我的过程。

回答

0

好的。我有它的工作。

虽然我用的是:set_attributes:attributes设置,输出最终产生的HTML输出如下:

<erb loud class="btn btn-info"> 
    submit_tag Spree.t(:search), name: nil, class: "btn btn-danger" %&gt; 
</erb> 

什么实际工作如下:

Deface::Override.new(
    :virtual_path => "spree/shared/_search", 
    :name => "set_button_to_green", 
    :replace => "erb[loud]:contains('submit_tag')", 
    :text => "<%= submit_tag Spree.t(:search), name: nil, class: 'btn btn-info' %>" 
) 

因此,使用:replace:text是我所需要的,而不仅仅是设置属性。