1

devise を使用してパスワードを変更する方法は知っていますが、現在の管理者ユーザーのアクションへのリンクを作成する方法がわかりません。たとえば、メールの下にリンクを追加します。

パスワードを変更する

そして、それは以下を呼び出すアクションに送信されます:

send_reset_password_instructions

ActiveAdmin の適切なドキュメントが実際には見つかりません。公式サイトにはいくつかの例が公開されていますが、実際には何も説明されていません。物事がどこでどのように機能するかは不明です。

4

1 に答える 1

5

カスタム コントローラ アクションに関するActiveAdmin のドキュメントを参照してください。「member_action」(単一のレコードに作用するカスタム コントローラー アクション) を作成し、それを実行する「action_item」を追加することでこれを実現しました (これらは、レコードを表示するときに右上に表示されるボタンです)。これが私がそれを機能させる方法です:

# in app/admin/admin_users.rb
action_item do
  # Link to perform the member_action, "reset_password" defined below
  link_to("Reset Password", reset_password_admin_admin_user_path(admin_user))
end

member_action :reset_password do
  # Find the user in question
  admin_user = AdminUser.find(params[:id])

  # Call the method (from Devise) which sends them a password reset email
  admin_user.send_reset_password_instructions

  # Redirect back to the user's page with a confirmation
  redirect_to(admin_admin_user_path(admin_user),
    notice: "Password reset email sent to #{admin_user.email}")
end
于 2013-04-03T16:29:01.907 に答える