Ruby/Railsのバージョンアップを行っていますが、
ログイン画面からログインしようと試みると下記エラーが発生してしまいます。
hoge_session/create
中のsave
で落ちる為追っていくと、
Authlogic
のvalidate_by_password
で落ちていました。
元々モンキーパッチがあたっていた為これを外し、
何かがオーバーライドしてしまっているのかと思い
config/initializers
中のActiveRecord
, Authlogic
関連のソースを全てコメントアウトしましたが、
やはり同様のエラーが発生します。
漠然とした質問で大変恐縮ですが、
手がかりがなく、何を調べたらよいのか困っている状況です。
この辺りを調べてみたらどうかというご指摘を頂けますと幸いです。
どうぞよろしくお願いいたします。
Ruby 2.5.0(旧:1.9.x)
Rails 5.1.6(旧:3.2.x)
Authlogic 4.1.0(旧:3.1.0)
#エラーメッセージ Arel::Visitors::UnsupportedVisitError (Unsupported argument type: String. Construct an Arel node instead.): app/controllers/hoge_sessions_controller.rb:xx:in `create' app/controllers/hoge/hoge_base_controller.rb:xx:in `define_session_to_model' app/controllers/application_controller.rb:xx:in `define_controller_to_model'
ruby
1#hoge_sessions_controller.rb 2 def create 3 @hoge_session = HogeSession.new(hoge_session_params.to_h) 4 login = @hoge_session.save 5 ...(略)... 6 end 7 8 private 9 def hoge_session_params 10 params.require(:hoge_session).permit(:login, :password) 11 end
ruby
1#model/hoge.rb 2class Hoge < ApplicationRecord 3 4 acts_as_authentic do |c| 5 c.logged_in_timeout = 999.years 6 c.password_salt_field = false 7 c.validate_login_field = false 8 c.merge_validates_uniqueness_of_login_field_options(:case_sensitive => true) 9 end
追記:hoge.rb
の
c.merge_validates_uniqueness_of_login_field_options(:case_sensitive => true)
を
c.validates_uniqueness_of_login_field_options[:case_sensitive] = true
に直したところ
上記エラーは発生しなくなりましたが、ただしいID/パスワードをいれても、ログインID/パスワードが間違っている扱いとなってしまい、
ログインすることができない状態となっています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。