将 link 添加到 Rails ActiveAdmin 视图中的快速通知

Add link to a flash notice in Rails ActiveAdmin view

我正在尝试在 active-admin controller.But 的成功创建操作的闪现消息中添加一个 link link 的 HTML 正在被转义并且在视图中显示为纯文本。

Rails 5.2.1,ruby 2.5.3p105(2018-10-18 修订版 65156)[x86_64-linux]

例如:如果我尝试做

flash[:success] = "Complete this quick survey. <a href='#{url}'>Click here</a>".html_safe

即显信息显示为,

"Complete this quick survey. <a href='https://www.example.com'>Click here</a>"

预期行为:Flash 消息中应该有有效的 link

实现您的目的的唯一方法(可能不是一个好的方法)是重写 activeadmin:build_flash_messages 方法,该方法生成即显消息。

https://github.com/activeadmin/activeadmin/blob/14d6e500c777e82111faafe9392d90a6efed7e0b/lib/active_admin/views/pages/base.rb#L86

这是覆盖版本(添加 .html_safe)。将此代码放在初始值设定项中的某处。

class ActiveAdmin::Views::Pages::Base
  def build_flash_messages
    div class: 'flashes' do
      flash_messages.each do |type, message|
        div message.html_safe, class: "flash flash_#{type}"
      end
    end
  end
end