1

認証システムとしてdeviseを使用しており、パスワードとメールアドレスを変更するための個別のページを作成したいと考えています。

update_passwordやのような追加のアクションを作成する必要がありますか?それとも、パスワードと電子メールの両方を受け入れることができるupdate_email単一のアクションを使用する方がよいでしょうか?update

4

1 に答える 1

1

新しいアクションを作成することに実際の利点はないと思います。そして、その本から私が覚えていることから、すべてを RESTFul に保つために、可能であれば 7 つの古典的なアクション (index / show / new / edit / create / update / delete) に固執する必要があります。

とにかく、アクションはおそらく同じことをするでしょう。

古典的な更新は次のようになります。

def update
  user = User.find(params[:id]).update_attributes! params[:user]
end

そして最終的な update_password & update_email はおそらくそのようなものになるでしょう

def update_email
  user = User.find(params[:id]).update_attributes! email: params[:user][:email]
end

def update_password
  user = User.find(params[:id]).update_attributes! password: params[:user][:password]
end

単一のアクション (更新アクション) を使用する場合、唯一の最終的な問題はchange email、たとえばページの html を変更することにより、ユーザーがフォームを介してパスワードを更新できることです。とにかくユーザーは自分のパスワードを変更できるので、これは問題ではないと思います。

したがって、私は古典的な更新方法に固執します。

私があなたのポイントを逃した場合は、私に知らせてください;)

于 2012-10-01T18:37:28.280 に答える