Добавить ссылку на флэш-уведомление в представлении Rails ActiveAdmin - PullRequest
2 голосов
/ 09 апреля 2019

Я пытаюсь добавить ссылку во флэш-сообщении об успешном действии создания контроллера active-admin. Но 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>"

Ожидаемое поведение: во флеш-сообщении должна быть рабочая ссылка

1 Ответ

2 голосов
/ 09 апреля 2019

Единственный способ (возможно, не самый удачный) для достижения вашей цели - переопределить 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
...