You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails Admin的自定义动作中实现新标签页跳转?

Rails Admin 自定义动作实现新标签页打开链接

你当前用后端redirect_to的方式没法直接控制浏览器新开标签,因为跳转是服务器端触发的,浏览器不会自动新开标签。不过Rails Admin有内置的方式实现需求,不需要额外引入JS,直接给自定义动作的按钮添加target="_blank"属性即可,分两种场景处理:

场景1:无需后端逻辑,直接跳转外部链接

如果你的object.url是确定的外部链接,不需要经过后端验证或处理,直接让按钮的链接指向目标URL并设置新标签属性:

config.actions do
  # 保留其他默认动作...
  member :open_external_link do
    # 可选:给按钮加个外部链接图标
    link_icon 'fa fa-external-link'
    # 设置新标签属性,rel属性是安全最佳实践
    link_attrs target: '_blank', rel: 'noopener noreferrer'
    # 直接指定按钮的跳转URL
    register_instance_option :url do
      object.url
    end
  end
end

这样生成的按钮会直接以新标签页打开object.url,不需要走后端控制器的跳转逻辑,更高效。

场景2:需要经过后端逻辑处理(比如权限验证)

如果必须通过后端控制器做验证或其他逻辑,再跳转目标URL,只需在自定义动作配置里给按钮添加target="_blank",同时保留控制器的redirect_to代码:

config.actions do
  # 保留其他默认动作...
  member :your_custom_action do
    link_attrs target: '_blank', rel: 'noopener noreferrer'
    register_instance_option :controller do
      proc do
        # 这里可以添加权限验证、日志记录等后端逻辑
        url = object.url
        redirect_to url, allow_other_host: true
      end
    end
  end
end

点击按钮时,浏览器会新开一个标签页,后端逻辑在这个新标签页里执行完成后,再跳转到目标URL,满足你的需求。

内容的提问来源于stack exchange,提问作者Максим

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:22:06