как обработать несколько сообщений об ошибках в моем случае?

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

У меня есть две строки сообщений об ошибках, я хотел бы показать их в пользовательском интерфейсе отдельно.

 flash[:error] = "Error message one"
flash[:error] = "Error message two"
  

в настоящее время они оба некоторое время мигают, и второе сообщение об ошибке скрывается первым.

Я бы хотел, чтобы «сообщение об ошибке один» мигало в течение нескольких секунд, а «сообщение об ошибке два» находилось под «сообщением об ошибке один» и оставалось на странице, не исчезая. Как это сделать в rails 3?

Комментарии:

1. попробуйте этот драгоценный камень github.com/dapi/gritter_notices

Ответ №1:

Вы не ограничены flash[:error]. Вы могли бы, например, определить

 flash[:second] = "Error message two"
  

и отобразите это в главном макете app / views/layout/application.html.erb с:

 <section id="flash">
    <% flash.each do |key, value| %>
        <div class="flash <%= key %>"><%= value %></div>
    <% end %>
</section>
  

Это приводит к двум разделениям одно за другим, и если вам нужно, вы можете реализовать исчезновение первого из них, используя Prototype или jQuery.

Комментарии:

1. как тогда сделать сообщение стабильным на странице? я имею в виду не вспышку и исчезновение.

2. Все флэш-сообщения «стабильны» до следующего запроса. Или вы имеете в виду оставаться на нескольких страницах? Тогда вам нужно будет либо снова установить flash, либо использовать другой подход, например, сохранить это значение в сеансе и отобразить его в основном макете. Тогда это будет сохраняться до тех пор, пока вы не очистите значение от сеанса. А для flash вас могут заинтересовать методы flash.now и flash.keep.

3. Вы изменили макет для отображения flash, а не просто установили flash-сообщение?