/ / rails 5 authlogic cryptic user_sessionエラー-ruby-on-rails、authlogic、ruby-on-rails-5

レール5 authlogic cryptic user_sessionエラー - ruby​​-on-rails、authlogic、ruby-on-rails-5

Rails 5でAuthlogicをセットアップしようとしています(そのため、 user_session_params.to_h)、および新しいセッションを作成しようとすると、次のエラーメッセージが表示されます。

puts @ 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."}]}>

ここにはコードがあります:

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

ビュー

<%= 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 %>

ユーザー

class User < ApplicationRecord
acts_as_authentic do |c|
c.login_field = "email"
end
end

回答:

回答№1は2

あると思われる Rails 5でのAuthlogicの問題.

あなたはおそらくすでに見た このコメント github issue 487からですが、おそらく最初の手順だけを実行したと思われます。ステップ番号。 2 Rails 5で壊れたAuthlogicコールバックを扱っており、へのリンクがあります プルリクエスト#488 修正が開発される場所。現在、唯一のオプションは次のようです。

  • あなたが試すことができます Authlogicのこのブランチ 伝えられるところでは、コールバックの問題は修正されています。 コメントした プルリクエスト488で。
  • もちろん、物事が落ち着き、AuthlogicがRails5の公式サポートを得るまで待つことができます。

回答№2の場合は0

この問題は次のように修正されたようですAuthlogicバージョン3.5.0。現在、3.5.0はまだ安定したバージョンとしてリリースされていませんが、Gemfileで3.5を指定すると問題が解決するはずです(とにかく私にとってはそうでした)。

gem "authlogic", "~> 3.5"