我想使用Deface将类从“第四列”替换为“第三列”。
<aside id="sidebar" class="columns four" data-hook>
<%= yield :sidebar %>
</aside>
我不确定我需要采取什么行动和来源。这就是我到目前为止所拥有的。
Deface::Override.new(:virtual_path => "shared/_sidebar",
:name => "grid",
:set_attributes => '.columns three',
:attributes => {:class => 'pretty', :title => 'This is a link'})
答案 0 :(得分:6)
你快到了那里:
Deface::Override.new(
:virtual_path => 'spree/shared/_sidebar',
:name => 'grid',
:set_attributes => '.columns.four',
:attributes => {:class => 'columns three', :title => 'This is a link'})
您不需要:source
或:action
:set_attributes
。请注意set_attributes
用于选择当前存在的内容(即您要更改的内容),并使用:attributes
选项提供新属性。
编辑:污损评论的问题:
Deface::Override.new(
:virtual_path => 'path/to/view',
:name => 'some name',
:replace => %{[erb-loud]:contains(' !content_for?(:sidebar) ? "sixteen" : "twelve" ')},
text: '<%= !content_for?(:sidebar) ? "thirteen" : "twelve" %>"'
)
在较新版本的Deface中,您应该也可以使用erb[loud]
,只需进行小的语法更改。