当用户无法登录时,请留在模态窗口中

时间:2015-10-15 09:17:26

标签: ruby-on-rails ruby ruby-on-rails-4

我试图在这样的模态窗口中推送登录表单:

<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,

赖安

1 个答案:

答案 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
相关问题