2016-01-18 4 views
0

Итак, у меня есть уведомление о двух вспышках, которое должно появиться, если сообщение успешно сохранено, а другое, если есть ошибка при создании нового сообщения. Я осуществил это некоторое время назад, но я только понял, что ошибка вспышки не отображается должным образом. Все, что отображается, - это красное пустое уведомление в верхней части окна, в то время как уведомление об успешном сохранении отображается правильно.Flash alert Ошибка, не отображающая Rails

для моего контроллера я есть:

def create 
    @topic = Topic.new 
    @topic.name = params[:topic][:name] 
    @topic.description = params[:topic][:description] 
    @topic.public = params[:topic][:public] 

    if @topic.save 
     redirect_to @topic, notice: "Topic was saved successfully." 
    else 
     flash.now[:alert] = "Error creating topic. Please try again." 
     render :new 
    end 
    end 

новый вид сообщения:

<div class="col-md-8"> 
    <%= render partial: 'form', locals: { topic: @topic, post: @post } %> 

    </div> 
</div> 

_form.html:

<%= form_for [topic, post] do |f| %> 
    <% if post.errors.any? %> 
    <div class="alert alert-denger"> 
    <h4><%= pluralize(post.errors.count, "error") %>.</h4> 
    <ul> 
     <% post.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
    </ul> 
    </div> 
<% end %> 
<%= form_group_tag(post.errors[:title]) do %> 
    <%= f.label :title %> 
    <%= f.text_field :title, class: 'form-control', placeholder: "Enter post title" %> 
    <% end %> 
<%= form_group_tag(post.errors[:body]) do %> 
    <%= f.label :body %> 
    <%= f.text_area :body, rows: 8, class: 'form-control', placeholder: "Enter post body" %> 
    <% end %> 
    <div class="form-group"> 
    <%= f.submit "Save", class: 'btn btn-success' %> 
    </div> 
<% end %> 
+1

обеспечивают пожалуйста, ваше мнение, как вы реализуете сообщение об ошибке? –

+0

Попробуйте помечать 'flash.now [: alert] =" Ошибка создания темы. Повторите попытку. "' After' render: new' – Pavan

+0

@OlegSobchuk Я представил New Post View. и я попробовал все еще получать пустое красное уведомление без слов в нем –

ответ

0

Пожалуйста, положить это в application.html.erb файле.

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

Попробуйте добавить flash массаж в вашем application.html.erb:

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

обычно он ставил выше <%= yield %>