Active Admin - флеш-сообщения не появляются на странице - PullRequest
18 голосов
/ 27 октября 2011

Я пытаюсь отобразить уведомление после перенаправления на страницу, но оно не появляется.

Вот перенаправление -

redirect_to :action => :index, :notice => "My redirect"

Вы можете увидеть сообщение в URL, но тамПохоже, что внутри активного администратора нет кода для его отображения.

Есть идеи, как отобразить его внутри активного администратора?

Ответы [ 2 ]

27 голосов
/ 17 ноября 2011

Кажется, есть какая-то проблема, которую я еще не нашел, но если вы ищете обходной путь до этого, я сделал следующее:

member_action :test do
  flash[:notice] = "This is a test notice!"
  redirect_to :action => :index
end

Проблема, которую яЯ вижу, что когда вы добавляете :notice в метод redirect_to, сообщение с уведомлением кодируется в URL и добавляется к URL

member_action :test do
  redirect_to :action => :index, :notice => "This is a test notice!"
end

, что приводит к

/admin/model?notice=This+is+a+test+notice!

, чтоменьше, чем идеал.Я заметил изменение в документации active_admin, которое включает в себя {} вокруг первого параметра redirect_to, чтобы исправить эту проблему, однако для меня это приводит к ошибке.

member_action :test do
  redirect_to {:action => :index}, :notice => "This is a test notice!"
end

, что приводит к

syntax error, unexpected tASSOC, expecting '}'
    redirect_to {:action => :index}, :notice => "This...

Я разместил комментарий на этот конкретный запрос на получение ответа @ active_admin на github и, надеюсь, у кого-то может быть другое предложение, поскольку я в тупике.

В любом случаеМожет быть, одно из этих решений будет работать для вас.Удачи.

0 голосов
/ 27 октября 2011

Active Admin не отображает флеш-сообщения, он считает, что они отображаются в макете, и их выводит. Когда вы запускаете active_admin: установите генератор, он упоминает, что:

$ rails g active_admin:install
...
Some setup you must do manually if you haven't yet:
...
3. Ensure you have flash messages in app/views/layouts/application.html.erb. For example:

   <p class="notice"><%= notice %></p>
   <p class="alert"><%= alert %></p>
...