我希望admin_user能够从Active Admin edit_page重设用户的密码,但是目前卡住了。
我的想法是制作一个action_item按钮,并为有效的用户对象从设计身份验证gem启动@ user.send_reset_password_instructions方法。但是,action_item无法得到任何通知:消息,这就是我被困住的地方。
能否请您帮助我实现action_item按钮,该按钮可以启动@ user.send_reset_password_instructions,重定向到同一user_edit_page并快速发送通知消息,而无需呈现任何其他视图?
action_item :reset_password,only: :edit do
link_to "Reset password",edit_timein_employee_path
end
controller do
def reset_password
super do |success,failure|
employee.send_reset_password_instructions
end
end
end
非常感谢!
答案 0 :(得分:0)
我会这样做:确保将其粘贴到app/admin/admin_user.rb
文件中。我不会直接添加控制器方法,而是会使用member_action
dsl指令添加逻辑。祝你好运!
action_item :reset_password, :only => :edit do
link_to 'Reset password', do_password_reset_admin_admin_user_path(resource), :method => :post
end
member_action :do_password_reset, :method => :post do
flash.notice = "A mail containing password reset instructions has been sent to: #{resource.email}"
resource.send_reset_password_instructions
redirect_to edit_admin_admin_user_path(resource) and return
end