我正在尝试自定义此视图文件:https://github.com/spree/spree/blob/v2.1.0/frontend/app/views/spree/checkout/registration.html.erb
以下是代码:
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @user } %>
<h1><%= Spree.t(:registration) %></h1>
<div id="registration" data-hook>
<div id="account" class="columns alpha eight">
<!-- TODO: add partial with registration form -->
</div>
<% if Spree::Config[:allow_guest_checkout] %>
<div id="guest_checkout" data-hook class="columns omega eight">
<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @order } %>
<h6><%= Spree.t(:guest_user_account) %></h6>
<%= form_for @order, :url => update_checkout_registration_path, :method => :put, :html => { :id => 'checkout_form_registration' } do |f| %>
<p>
<%= f.label :email, Spree.t(:email) %><br />
<%= f.email_field :email, :class => 'title' %>
</p>
<p><%= f.submit Spree.t(:continue), :class => 'button primary' %></p>
<% end %>
</div>
<% end %>
</div>
现有用户的登录表单最终(在浏览器中)代替此评论:
<!-- TODO: add partial with registration form -->
当你关闭javascript时仍然如此。我正在试图弄清楚它是如何实现的,以及我如何定制它。
更新:为了清楚起见,我知道如何使用deface修改视图,或者完全覆盖它们。事实上,一个表格代替了我遇到麻烦的TODO评论。
答案 0 :(得分:2)
使用Deface稍微修改该视图(使用'same'路径创建新文件(app/overrides/spree/checkout/registration.rb
)以便将它们组织起来)或在app/views/spree/checkout/
目录中创建新视图名为registration.html.erb
,应该呈现而不是默认值。
编辑:我误解了你,要关闭不需要的覆盖,你应该添加另一个覆盖上面指定的路径并放入其中:
Deface::Override.new(
virtual_path: 'spree/checkout/registration',
name: "name_of_override", # you have to provide proper name here
disabled: true)
要查找正确的名称,您可以查看每个spree扩展名以查看registration.rb
或您的日志的覆盖内容,所有应用的覆盖都应该在访问该页面后列在那里。
原始海报更新:
事实证明它是spree_auth_devise gem中的覆盖:https://github.com/spree/spree_auth_devise/blob/master/app/overrides/auth_user_login_form.rb