2016-10-22 3 views
-1

Я делаю rails + Devise + Bootstrap app. В принципе, похоже, что он работает хорошо, но когда он получает неправильный пароль , сообщение об ошибке не отображается так. enter image description hereRails + Devise: сообщение об ошибке не отображается

Я не могу понять, почему это произошло и как это исправить. Не могли бы вы мне посоветовать? Заранее спасибо!

+0

вы добавили блок флэш-памяти для ошибки в макете? – uzaif

+0

@uzaif Спасибо. Неа. Я не добавил такую ​​функцию. Что и как его изменить? –

+0

Я думаю, вы должны проверить ответ @Sravan – uzaif

ответ

0

Добавьте эти строки над блоком доходности в макет приложения, как это предлагается в одном комментарии.

# In application.html.erb 
<% flash.each do |name, msg| %> 

    # New code (allow for flash elements to be arrays) 
    <% if msg.class == Array %> 
    <% msg.each do |message| %> 
     <%= content_tag :div, message, :id => "flash_#{name}" %> 
    <% end %> 
    <% else %> 

    # old code 
    <%= content_tag :div, msg, :id => "flash_#{name}" %> 

    <% end %> #don't forget the extra end 
<% end %> 

Просто добавьте этот код в действии контроллера, где вы хотите, чтобы показать сообщения об ошибках,

flash[:notice] = flash[:notice].to_a.concat resource.errors.full_messages 

This link gives you many answers for this

+0

Спасибо за комментарий. Когда я помещаю код выше в application.html.slim и помещаю последний код в application_controller.rb, возникает еще одна ошибка: «Не удалось найти пользователей :: OmniauthCallbacksHelper, ожидал, что он будет определен в помощниках/users/omniauth_callbacks_helper.rb ». На этот раз мне нужно внести ошибку в приложение. И модель - это Пользователь, так где писать код выше? –

Смежные вопросы