Ruby 2.2.0 にアップグレードしてから、テストで次のメッセージが表示されます。
invalid salt (BCrypt::Errors::InvalidSalt)
問題を理解するのに役立つアップグレード通知は見つかりませんでした。Rails 4.1.8 と Sorcery 0.8.6 を使用しています。
他にこの問題を抱えている人はいますか?
詳細:
私はDeviseではなくSorceryを使用しています。暗号化されたデータがパスワードです。すべては Cucumber テストで始まりました。2 つのケースがあります。 @user をメーラーに送信して、メールのデータを準備していたときです。コードは次のとおりです。
UserMailer.passphrase_reset_notification(@user).deliver
最初のメッセージに書いたメッセージで例外が発生しました。@user を送信する代わりの回避策として、必要なフィールドを送信しましたが、うまくいきました。新しいコードは次のとおりです。
UserMailer.passphrase_reset_notification(@user.name, @user.email).deliver
しかし、2番目のケースはサインアップです。開発に失敗したため、:salt を user_params に追加して修正する必要がありました。しかし、テスト環境の問題は修正されません。
スタック トレースはありません。エラーにつながる私のシナリオの行を含む 1 つのライナー メッセージだけです。
そして、無効なソルト (BCrypt::Errors::InvalidSalt) ./app/controllers/users_controller.rb:66:in block in create'
./app/controllers/users_controller.rb:64:in
create' ./app/controllers/application_controller.rb:120:in scope_current_tenant'
./features/step_definitions/web_steps.rb:53:in
/^(? :|I )press "([^"]*)"$/' features/users/sign_up.feature:149:in `そして、「サインアップ」を押します'
user テーブルのフィールド「salt」の「null: false」を削除しました。多かれ少なかれ同様の問題に関する投稿でコミュニティ メンバーが提案したように、どちらも役に立ちませんでした。
私の主な質問は同じです: Ruby の新しいバージョン (2.2.0) はこれと何の関係があるのでしょうか? また、製品をアップグレードすると、他にどのような驚きがありますか?