ruby Rails 7加密电子邮件+设备(错误)

6qfn3psc  于 2022-11-22  发布在  Ruby
关注(0)|答案(1)|浏览(126)

我正在使用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加密?
非常感谢您的光临。

toe95027

toe950271#

看起来这应该可以帮助您解决错误https://github.com/heartcombo/devise/issues/5436#issuecomment-1014152052
有2种方法,可以设置:

config.active_record.encryption.support_unencrypted_data = true

或更改电子邮件迁移窗口项:

null: false, default: ""

相关问题