Search code examples
ruby-on-railsrubynotificationsnoticerails-flash

Ruby on rails flash notice error


I have a problem with flash[:notice] = "Message" in Ruby on Rails.

I am trying to create login fault error message. My login fault handling is:

flash[:notice] = "Invalid username/password combination."
redirect_to(:action => 'login')

For the reason I don't know, alert just doesn't show up. I have red tons of possible solutions, but all of them just doesn't work for me. I am using Safari / Google Chrome web browsers.


Solution

  • Your controller code looks fine. I suspect your problem is not that you are calling the flash method incorrectly in your controller, but rather that you did not write the code (correctly) to display the flash in your view.

    flash simply holds a message for your views to display. You are setting the message correctly, but you may not be displaying it properly. I can't tell because you aren't posting your view code.

    For example, if this action is the result of submitting a user/login.html.erb form, based on your controller code, you would want to have the following code inside that view file:

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

    This code is a more basic version of what is described in this article.