Active Admin - флэш-сообщения, не появляющиеся на странице

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

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

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

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

Любые идеи, как сделать это внутри активного администратора?

Ответы

Ответ 1

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

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...

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

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

Ответ 2

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

$ 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>