在 Rails ActiveAdmin 视图中添加一个闪现通知的链接

gis*_*esh 5 ruby ruby-on-rails activeadmin

我正在尝试在 Active-admin 控制器成功创建操作的 Flash 消息中添加一个链接。但是链接的 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
Run Code Online (Sandbox Code Playgroud)

Flash 消息显示为,

"Complete this quick survey. <a href='https://www.example.com'>Click here</a>"
Run Code Online (Sandbox Code Playgroud)

预期行为:Flash 消息中应该有一个工作链接

chu*_*off 5

实现您的目的的唯一方法(可能不是一个好方法)是覆盖生成 Flash 消息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
Run Code Online (Sandbox Code Playgroud)