activeadmin更改密码按钮

时间:2012-06-21 16:05:26

标签: ruby-on-rails activeadmin

我知道如何使用设计更改密码,但我不知道如何为当前管理员用户创建指向操作的链接。例如,在电子邮件下添加链接。

更改密码

然后发送到一个动作:

send_reset_password_instructions

我无法找到ActiveAdmin的任何好文档,官方网站会公开一些例子,但没有真正解释过的。它不清楚事情的工作地点和方式。

1 个答案:

答案 0 :(得分:3)

您需要查看ActiveAdmin的documentation on custom controller actions。我通过创建一个“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