我正在使用devise
来允许用户登录网站。身份验证密钥设置为用户名,该用户名是唯一的。同样独特的是提供的电子邮件地址。似乎某种方式devise
已经发现电子邮件地址应该是唯一的。这很好。
现在我想让人们更改密码。我链接到我的edit_user_registration_path
,但请注意允许用户更改其电子邮件地址。一种选择是将reconfirmable
设置为false
...但我认为我不想允许用户更改其电子邮件地址。
我想我可以从devise
视图中删除该字段,但从理论上讲,精心设计的PUT
方法仍然可以让他们更改自己的电子邮件地址。有没有办法阻止这个字段变得可变?或者让电子邮件地址重新确认是否更好?
答案 0 :(得分:1)
请参阅http://trak3r.blogspot.com/2007/03/immutable-activerecord-attributes.html
所以
class User
def email=(address)
if new_record?
write_attribute(:email, address)
else
raise 'email is immutable!'
end
end
end
答案 1 :(得分:1)
就我而言,“回答”只是允许人们编辑他们的电子邮件地址。有足够的用例可以让某人合法地想要更改他们的电子邮件地址,我认为在试图阻止它时没有任何损害。