1

deviseユーザーがサイトにログインできるようにするために使用しています。認証キーは、一意のユーザー名に設定されます。また、提供される電子メールアドレスも一意である必要があります。devise電子メールアドレスが一意であるべきであることが、どういうわけかすでにわかっているようです。それでいいです。

今、私は人々が自分のパスワードを変更できるようにしたいと考えています。にリンクしましたedit_user_registration_pathが、ユーザーが自分の電子メール アドレスを変更できることに気付きました。1 つのオプションは ... に設定reconfirmableすることfalseですが、ユーザーが自分のメール アドレスを変更することをまったく許可したくないと思います。

ビューからフィールドを削除することもできると思いますdeviseが、理論的には、慎重に作成されたPUT方法でメール アドレスを変更できる可能性があります。このフィールドが可変になるのを止める方法はありますか? それともメールアドレスだけ再確認できるようにしたほうがいいですか?

4

2 に答える 2

1

私の場合、「答え」は単に人々が自分のメールアドレスを編集できるようにすることでした。誰かが合法的に自分の電子メールアドレスを変更したいと思う可能性がある十分なユースケースがあり、それを止めようとしても害はないと私は考えました。

于 2012-11-19T17:57:24.690 に答える
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
于 2012-08-29T18:11:16.090 に答える