Можете ли вы поделиться своим AJAX, который генерирует это?
В вашей ситуации я бы попробовал использовать метод jQuery append () , чтобы добавить флэш-DIV вверху страницы при запуске флэш-сообщения, а затем убрать его через некоторое время. .
- EDIT -
Вот пример "например":
Давайте просто скажем, что ваш ajax-вызов выполняет FoosController # Update и отправляется из действия #show.
В представлении шоу у меня будет что-то вроде:
<div class="notices"></div>
Я бы поместил ваши флеш-сообщения в частичное (упрощает код ajax), так что-то вроде
views/shared/_flash.html.erb
...
<div class="flash"><% flash.each do |key, value| %>
<%= value %>
<% end %></div>
В jQuery + ERB я бы написал update.js.erb
файл в views/foos/
$('div.notices').append('<%= render 'shared/flash' %>');
Затем, чтобы сделать его автоматически исчезающим, вы можете включить скрипт (либо в специальном представлении с флэш-сообщениями, либо в файле application.js), например:
$(document).ready(function() {
$('div.flash').delay(5000).fadeOut();
});
Это приведет к тому, что любая div.flash исчезнет и исчезнет через 5 секунд. В качестве альтернативы вы можете отключить его после щелчка, используя метод jQuery click ().
Надеюсь, это поможет.
- ИЗМЕНИТЬ СНОВА -
Согласно этому Railscast , сделать это с RJS:
На ваш взгляд создайте:
<div id="notices"></div>
В вашем файле RJS выполните:
page.insert_html :bottom, :partial=>'shared/flash'
Это все еще хорошая идея, чтобы поместить ваши флэш-сообщения в частичную. Убедитесь, что вы поместили флэш-сообщения в div.flash
, как описано в первом редактировании, и все будет хорошо.