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
我已将 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