我试图在这样的模态窗口中推送登录表单:
<div class="modal fade" id="loginModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal">x</button>
<h2 class="text-center">Login</h2>
</div>
<div class="modal-body">
<%= form_for(resource, as: resource_name, :html => {class: "form-horizontal", role: "form"}, url: session_path(resource_name)) do |f| %>
<div class="form-group">
<div class="control-label col-md-3">
<%= f.label :email %>
</div>
<div class="col-md-9">
<%= f.email_field :email, class: 'form-control', autofocus: true %>
</div>
</div>
<div class="form-group">
<div class="control-label col-md-3">
<%= f.label :password %>
</div>
<div class="col-md-9">
<%= f.password_field :password, class: 'form-control', autocomplete: "off" %>
</div>
</div>
<% if devise_mapping.rememberable? -%>
<div class="form-group">
<div class="col-md-9 col-md-offset-3">
<div class="checkbox">
<label>
<%= f.check_box :remember_me %>
Remember me
</label>
</div>
</div>
</div>
<% end -%>
<div class='form-group'>
<div class="col-md-offset-3 col-md-9">
<%= f.submit "Log in", class: "btn btn-primary btn-lg" %>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-9">
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
</div>
</div>
<% end %>
</div>
</div> <!-- end modal-content -->
</div> <!-- end modal-dialog -->
</div>
因此,我可以使用此窗口成功登录。 但是,如果用户登录失败,我想留在此窗口中,以便用户可以继续在此窗口中登录。 我该怎么做?
由于
的BR,
赖安
答案 0 :(得分:0)
如果用户登录失败,以便用户可以继续在此窗口中登录
您希望使用Ajax远程处理请求:
z-index: 9999;
您需要注意,由于我们正在使用#app/views/sessions/new.html.erb
<%= form_for(resource, as: resource_name, :html => {class: "form-horizontal", role: "form"}, url: session_path(resource_name)), remote: true do |f| %>
#app/assets/javascripts/application.js
$(document).on("ajax:success", "#new_session", function(data, status, xhr){
// redirect to dashboard
}).on("ajax:error", "#new_session", function(xhr, status, error){
// post error into DOM
});
,因此我们可以为ajax调用部分Rails UJS hooks。
您必须按modifying the Devise sessions
controller:
remote: true