使用Spree Deface Overrides,如何更改提交标记的css类?

时间:2017-08-09 22:52:49

标签: ruby-on-rails spree deface

所以在我的代码中,我在第14行有以下内容:

应用程序/视图/礼包/共享/ _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

我今天花了几个小时试图解决这个问题,我没有找到任何专门解决我的问题的答案。目前我有一个解决方法,但理解这个问题会真正加快我的进程。

1 个答案:

答案 0 :(得分: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是我需要的,而不仅仅是设置属性。