Ich versuche, Authlogic mit Rails 5 (daher die user_session_params.to_h
) einzurichten, und wenn ich versuche, eine neue Sitzung zu erstellen, bekomme ich die folgende Fehlermeldung, mit der ich nicht weiß was machen. Irgendwelche Vorschläge werden sehr geschätzt.Rails 5 authlogic kryptische user_session Fehler
puts @ user_session.errors.inspect
#<Authlogic::Session::Validation::Errors:0x0000000cb9b7a0 @base=#<UserSession: {:email=>"[email protected]", :password=>"<protected>"}>, @messages={:base=>["You did not provide any details for authentication."]}, @details={:base=>[{:error=>"You did not provide any details for authentication."}]}>
Hier ist der Code:
UserSessionsController
class UserSessionsController < ApplicationController
def new
@user_session = UserSession.new
end
def create
@user_session = UserSession.new(user_session_params.to_h)
puts @user_session.errors.inspect
if @user_session.save
flash[:notice] = "Login successful, thank you!"
redirect_to users_path
else
flash[:notice] = "Something went wrong, sorry."
end
end
def destroy
current_user_session.destroy
redirect_to new_user_sessions_path
end
private
def user_session_params
params.require(:user_session).permit(:email, :password, :remember_me)
end
end
Usersession
class UserSession < Authlogic::Session::Base
end
Ansicht
<%= form_for @user_session, url: user_sessions_path, method: :post, html: {class: 'form-horizontal', role: 'form'} do |f| %>
<div class='form-group'>
<%= f.email_field :email, class: 'form-control', placeholder: 'Login' %>
</div>
<div class='form-group'>
<%= f.password_field :password, class: 'form-control', placeholder: 'Password' %>
</div>
<%= f.submit 'Login', class: 'btn btn-primary' %>
<% end %>
Benutzer
class User < ApplicationRecord
acts_as_authentic do |c|
c.login_field = 'email'
end
end
Sie müssen '@user_session nennen. valide? 'vor deinem' puts', so dass 'errors' tatsächlich etwas ausdruckt, wenn die Validierung fehlschlägt. Bitte aktualisieren Sie die Frage. – BoraMa
Hinzugefügt, dass. Nun scheint es, dass es die Authentifizierungsdetails nicht erkennt, während es tatsächlich die korrekten Authentifizierungsdetails verwendet. –