Ich versuche, Authlogic mit Rails 5 (daher die user_session_params.to_h
) und wenn ich versuche, eine neue Sitzung zu erstellen, erhalte ich die folgende Fehlermeldung, mit der ich nicht weiß, was ich tun soll. Vorschläge werden sehr geschätzt.
setzt @ user_session.errors.inspect
#<Authlogic::Session::Validation::Errors:0x0000000cb9b7a0 @base=#<UserSession: {:email=>"test@test.com", :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
Aussicht
<%= 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
Antworten:
2 für die Antwort № 1Es scheint einen zu geben Ausgabe von Authlogic unter Schienen 5.
Sie haben wahrscheinlich schon gesehen dieser Kommentar von github Ausgabe 487, aber Sie sind wahrscheinlich nur dem ersten Schritt gefolgt. Der Schritt nr. 2 befasst sich mit defekten Authlogic-Rückrufen unter Rails 5 und es gibt einen Link zu Pull-Anfrage # 488 wo ein fix entwickelt wird. Derzeit scheinen Ihre einzigen Optionen die folgenden zu sein:
- Du kannst es versuchen dieser Zweig von Authlogic angeblich hat das Callback-Problem behoben, wie kommentiert in der Pull-Anfrage 488.
- Sie können natürlich warten, bis sich alles beruhigt hat und Authlogic eine offizielle Unterstützung für Rails5 erhält.
0 für die Antwort № 2
Es sieht so aus, als ob dieses Problem behoben wurdeAuthlogic Version 3.5.0. Derzeit ist 3.5.0 noch nicht als stabile Version veröffentlicht worden, aber die Angabe von 3.5 in Ihrer Gemfile-Datei sollte die Dinge reparieren (es hat sich jedenfalls für mich getan):
gem "authlogic", "~> 3.5"