Разработка, показывающая ошибки для регистрации правильно, но не для входа. Я использую имя пользователя вместо электронной почты. Когда я пытаюсь войти в систему с неправильным именем пользователя / паролем, отображается пустой массив ошибок
{"error"=>""}
Вот код контроллера:
class LoginsessionsController < Devise::SessionsController
before_action :authenticate_user!
protect_from_forgery prepend: true
before_action :configure_permitted_parameters, if: :devise_controller?
skip_before_action :verify_signed_out_user
def new
self.resource = resource_class.new(sign_in_params)
clean_up_passwords(resource)
yield resource if block_given?
redirect_to '/login', :alert => { :error => @user.errors.full_messages.join(', ') }
end
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_in, keys: [:username, :remember_me])
end
def after_sign_out_path_for(resource_or_scope)
root_path
end
end
Модель user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, authentication_keys: [:username]
validates_uniqueness_of :username
attr_accessor :email, :password, :password_confirmation, :remember_me, :username
validates :email, uniqueness: true
validates :username, uniqueness: true
end
И login.html.erb
<div class="form-app">
<%= form_for(:user, :url => session_path(:user)) do |f| %>
<%= f.text_field :username, :class => "input", :placeholder => "Username" %>
<%= f.password_field :password, :class => "input", :placeholder => "Password" %>
<% if Devise.mappings[:user].rememberable? -%>
<div class="field">
<%= f.check_box :remember_me %>
<%= f.label :remember_me %>
</div>
<% end -%>
<%= f.submit "Sign In", :class => "login" %>
<% end %>
</div>