我知道如何使用 devise 更改密码,但我不知道如何为当前管理员用户创建指向操作的链接。例如在电子邮件下添加一个链接。
更改密码
这将发送到一个动作调用:
send_reset_password_instructions
我真的找不到 ActiveAdmin 的任何好的文档,官方网站公开了一些示例,但没有真正解释。它不清楚事情在哪里以及如何运作。
我知道如何使用 devise 更改密码,但我不知道如何为当前管理员用户创建指向操作的链接。例如在电子邮件下添加一个链接。
更改密码
这将发送到一个动作调用:
send_reset_password_instructions
我真的找不到 ActiveAdmin 的任何好的文档,官方网站公开了一些示例,但没有真正解释。它不清楚事情在哪里以及如何运作。
您需要查看 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