simply_messages

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).

Requirements

Rails version 3.0+

Installation

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"

Usage

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] %>

EXAMPLE 1

controller:

flash.now[:notice] = 'Post saved'

view:

<%= messages_block %>

will result in:

<div class="notice">
<p>Post saved</p>
</div>

EXAMPLE 2

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>

Contributing to simply_messages

  • Fork, fix, then send me a pull request.

Copyright © 2009-2011 Paweł Gościcki, released under the MIT license