simply_messages is a Rails plugin providing a unified notice/alert messages handling (like those: flash.now = ‘Yeah’) and model validation errors. Based on the message_block by Ben Hughes (github.com/railsgarden/message_block).
Rails version 3.0+
Put this line in your Gemfile:
gem 'simply_messages'
Then bundle:
bundle
simply_messages uses standard I18n translations to display errors and as such requires at least the following keys to be present:
activerecord: errors: template: header: one: "1 error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved"
In ‘app/views/layouts/application.html.erb`:
<%= messages_block %>
By default the messages_block function will display all flash and flash messages and all errors for model object associated by name with the current controller (so it will display all model errors for @user model when ‘users’ is the current controller). It will also display appropriate messages for :success and :error flash keys.
We can also explicitly set the model we would like to display errors for, like this:
<%= messages_block :for => :comment %>
We can also display errors for more than one model:
<%= messages_block :for => [:post, :comment] %>
controller:
flash.now[:notice] = 'Post saved'
view:
<%= messages_block %>
will result in:
<div class="notice"> <p>Post saved</p> </div>
Given a User model instance with one validation error:
user.errors => #<OrderedHash {:name=>["can't be blank"]}>
and this in the view in the users controller:
<%= messages_block %>
it will render:
<div class="alert"> <p>1 error prohibited this User from being saved:</p> <ul> <li>Name can't be blank</li> </ul> </div>
-
Fork, fix, then send me a pull request.
Copyright © 2009-2011 Paweł Gościcki, released under the MIT license