Rails 3.2.8 を使用して、ユーザーがサインインおよびサインアウトし、プロファイルを変更できるアプリケーションを作成しました。has_secure_password を使用しています。
ただし、管理者がプロファイルの一部を変更できるようにする必要があります。明らかに、管理者はユーザーのパスワードを知りません。
パスワードを変更せずに、変更したユーザー プロファイルを保存するにはどうすればよいですか? 管理者だけがこの機能を持っています。
Rails 3.2.8 を使用して、ユーザーがサインインおよびサインアウトし、プロファイルを変更できるアプリケーションを作成しました。has_secure_password を使用しています。
ただし、管理者がプロファイルの一部を変更できるようにする必要があります。明らかに、管理者はユーザーのパスワードを知りません。
パスワードを変更せずに、変更したユーザー プロファイルを保存するにはどうすればよいですか? 管理者だけがこの機能を持っています。
私は最終的にこれを解決しました。フォームを表示するときに、パスワードと確認を特定の値(GUID)に設定することになりました。保存時に、コントローラーは、フィールドがそのGUIDと一致する場合、パラメーターからフィールドを削除します。次に、モデルは、フィールドが存在する場合にのみpassword_digestを検証(および保存)します。
'ActiveAdmin'を使用してみてください。
詳細を説明するRailscastは次のとおりですhttp://railscasts.com/episodes/284-active-admin
current_user メソッドを作成したと仮定します。
ユーザーコントローラー
before_filter :authorize!, only: [:edit, :update]
def edit
end
def update
end
private
def authorize!
@user = User.find(params[:id])
redirect_to root_url(status: :unauthorized) unless current_user && (current_user.eql?(@user) || current_user.role.eql?("admin"))
end