简体   繁体   中英

devise show wrong email/password message

My devise login page doesn't show wrong email/password message How to show them?

What I've done: I have generated devise views and controllers:

rails generate devise:views

rails generate devise:controllers

I have created devise_helper.rb

 module DeviseHelper
  def devise_error_messages1!
    resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
  end

  def devise_error_messages2!
    resource.errors.full_messages.map { |msg| content_tag(:p, msg) }.join
  end
end

Also I show flash msgs in views/users/sessions/new.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 %>

What do I do next? I have read similar questions like this but the didn't help

upd: I found what was wrong, my answer is written below

Well, I should just put this code

<% flash.each do |name, msg| %>

  <% if msg.class == Array %>
    <% msg.each do |message| %>
      <%= content_tag :div, message, :id => "flash_#{name}" %>
    <% end %>
  <% else %>

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

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

Here: /home/direwolf/rails_projects/limo/app/views/devise/sessions/new.html.erb

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM