在Active Admin中创建额外的URL可以通过自定义资源的member_action或collection_action来实现。下面是一个示例:
# app/admin/model_name.rb
ActiveAdmin.register ModelName do
member_action :custom_action, method: :get do
# 在这里编写自定义操作的代码
# 可以通过 params[:id] 获取当前资源的ID
# 可以使用redirect_to重定向到其他URL
# 可以使用render渲染一个视图模板
end
end
在上面的示例中,我们使用了member_action来创建一个自定义操作。这个操作会在资源的show页面上显示一个额外的链接。链接的URL将是/admin/model_names/:id/custom_action
,其中:id
将被当前资源的ID替换。
你可以在:method
参数中指定HTTP请求方法,默认为:get
。你还可以使用:collection_action
来创建一个对整个资源集合生效的自定义操作。
在自定义操作的代码块中,你可以编写任何你需要的逻辑。你可以使用params[:id]
获取当前资源的ID,并进行相应的处理。你还可以使用redirect_to
重定向到其他URL,或使用render
渲染一个视图模板。
希望这个示例可以帮助你在Active Admin中创建额外的URL!