Rails spree : 如何使用污损覆盖部分登录?

Rails spree : How to override login partial using deface?

我正在尝试使用污损覆盖 spree 中的登录页面,但我无法使用以下代码访问登录部分

Deface::Override.new(
:virtual_path => 'spree/shared/_login',
:name => 'override login',
:replace=> "body",
:text=> "<body><h1>loin<h1></body>",
:disabled => false
)

然而由于某种原因这似乎不起作用,在服务器输出中我得到: 破坏:为 'spree/shared/_login' 找到 1 个覆盖 污损:'override login' 与 'body' 匹配 0 次 渲染 /home/user/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/spree_auth_devise-3.1.0/lib/views/frontend/spree/shared/_login.html.erb(50.3 毫秒) 在 spree/layouts/spree_application 内呈现 /home/user/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/spree_auth_devise-3.1.0/lib/views/frontend/spree/user_sessions/new.html.erb ( 77.4 毫秒)

我在页面中为 css 尝试了多个选择器但没有结果,我注意到登录部分与其余部分位于 'spree_auth_devise-3.1.0' 子目录 'not spree_frontend-3.1.0' 中,有人知道吗现在如何破坏 spree 中的登录页面或如何为其部分引用正确的路径?

如果您想全部替换 body,最好覆盖部分,不要使用 Deface。这是一个很棒的工具,但当你想做这么大的改变时就不行了。 error的意思是partial没有找到body,确实是因为没有body。 您只能使用

<%= form_for Spree::User.new, :as => :spree_user, :url => spree.create_new_session_path do |f| %>
  <div id="password-credentials">
    <p>
      <%= f.label :email, Spree.t(:email) %>
      <%= f.email_field :email, :class => 'form-control', :tabindex => 1, autofocus: true %>
    </p>
    <p>
      <%= f.label :password, Spree.t(:password) %>
      <%= f.password_field :password, :class => 'form-control', :tabindex => 2 %>
    </p>
  </div>
  <p>
    <%= f.check_box :remember_me, :tabindex => 3 %>
    <%= f.label :remember_me, Spree.t(:remember_me) %>
  </p>

  <p><%= f.submit Spree.t(:login), :class => 'btn btn-lg btn-success btn-block', :tabindex => 4 %></p>
<% end %>