我正在使用Rails 7 + Devise gem。我正在尝试加密电子邮件字段(由devise生成)。我成功地执行了rails db:encryption:init并设置了我的凭据。
用户模型:
class User < ApplicationRecord
encrypts :email, deterministic: true, downcase: true
validates :email, presence: true
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable, :confirmable
end
当我尝试同时访问登录和注册路径时,出现以下错误:
ActiveRecord::Encryption::Errors::Decryption in Devise::Sessions#new
ActiveRecord::Encryption::Errors::Decryption in Devise::Registrations#new
两者都指向视图中的这一行:
<%= f.input :email,
甚至当我尝试通过Rails控制台创建新用户时,我也会得到:
unexpected token at '' (JSON::ParserError)
ActiveRecord::Encryption::Errors::Encoding (ActiveRecord::Encryption::Errors::Encoding)
ActiveRecord::Encryption::Errors::Decryption (ActiveRecord::Encryption::Errors::Decryption)
如何解决这个问题?Devise是否提供新的Rails 7 ActiveRecord加密?
非常感谢您的光临。
1条答案
按热度按时间toe950271#
看起来这应该可以帮助您解决错误https://github.com/heartcombo/devise/issues/5436#issuecomment-1014152052
有2种方法,可以设置:
或更改电子邮件迁移窗口项: