Rails5 devise gem - как остановить перенаправление после неудачного входа - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь добавить форму входа на свой сайт с помощью лайтбокса начальной загрузки.

<%= form_for(User.new, url: session_path(:user), html:{id: 'sign_in_user', :'data-type' => 'json'}, remote: true, :format => :json, authenticity_token: true) do |f| %>
    <div class="field">
       <%= f.email_field :email, autofocus: true, autocomplete: "email", placeholder: "Email", class: "form-control", validate: true, required: true %></div>
    <div class="actions mt-3">
      <%= f.submit "Log in", class: "btn btn-lg btn-primary btn-block" %> 
    </div>
<% end %>

JS

$(document).on('click', '[data-toggle="lightbox"]', function (event) {
    event.preventDefault();
    $(this).ekkoLightbox();
});

app / controllers /users / session_controller.rb

class Users::SessionsController < Devise::SessionsController
    layout false
      # POST /resource/sign_in
      def create
        # Skip password, only check if email exists
        self.resource = User.find_by_email(params[:user][:email])

        if resource.present?
          sign_in(resource_name, resource)

          respond_with resource, location: after_sign_in_path_for(resource)
        else
          render json: {status: "ERROR", message: "User not found", }, status: :unprocessable_entity
        end
      end
end

При правильной электронной почте пользователя форма работает правильно, но при неудачном входе в систему она перенаправляется на «users / sign_in».Я хочу только напечатать сообщение об ошибке, без перенаправления.Как я могу это сделать?

...