gpt4 book ai didi

ruby-on-rails - Rails,DEVISE - 防止用户更改他们的电子邮件地址

转载 作者:行者123 更新时间:2023-12-04 05:45:17 24 4
gpt4 key购买 nike

当用户在我的应用程序上注册时,他们必须确认他们的电子邮件,由 Devise + Rails 3 提供支持。

电子邮件地址定义了用户的权限,因此我不希望用户在注册后能够更改它。所以删除了 : 来自 users.rb attr_accessible 的电子邮件,它适用于登录用户,但现在用户无法注册。

处理这个问题的正确方法是什么?因此用户无法更新他们的电子邮件,但可以使用他们的电子邮件注册。

谢谢

最佳答案

这是自定义验证器的完美案例。从 Rails3 开始,它们比以前更容易做到。

class ImmutableValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
record.errors[attribute] << "cannot be changed after creation" if record.send("#{attribute}_changed?") && !record.new_record?
end
end

class User < ActiveRecord::Base
validates :email, :immutable => true
end

关于ruby-on-rails - Rails,DEVISE - 防止用户更改他们的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com