Rails 活动管理员从自定义操作重定向到自定义视图页面

Rails activeadmin redirect to customized view page from customse action

我已将 active-admin 集成到我的 rails 应用程序之一中。在用户编辑页面中,我启用了一个名为 Password reset 的自定义操作。当我单击此操作时,它必须将我带到位于 /views/active_admin/users/password_reset.html.erb 内的自定义视图页面,默认为 active-admin layout.

ActiveAdmin.register User do

  action_view only: :edit do
    link_to "Reset", path(id: user.id)
  end

  controller do

    def password_reset
      @user = User.find(params[id])
    end

  end
end

您可以为此使用 collection_action。集合操作是对资源集合进行操作的控制器操作。此方法将动作添加到控制器并为您生成路线。

collection_action :password_reset, method: :get do
  # Do some work here... 
end

并在 view/admin/users/password_reset.html.erb

创建视图

您可以使用默认的活动管理布局查看。

你可以试试这个:

ActiveAdmin.register User do
  action_item :password_reset_action_item, only: :edit do
    link_to 'Reset', password_reset_admin_user_path(id: user.id)
  end

  member_action :password_reset do
    @user = User.find(params[id]) # tips: you can (& should) use `resource` to lookup records by id. it will save you a couple of lines when you integrate authorization adapters like cancancan/pundit
    render 'active_admin/users/password_reset' # you may omit this line if your template and action names are equal
  end
end