Skip to content

dncrht/sal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

What is this?

Sal (salt) is something you add to almost every meal. I add sal to my Rails projects.

I found I always add a particular set of helpers, initializers and generators. Better if they're distributed as a Rails engine.

Installation

Add to your Rails app Gemfile:

gem 'sal-engine'

And run bundle

How does it taste?

messages_bar helper

Will render:

<div class="alert alert-success">anything</div>

…if flash[:notice] contains anything.

Will render:

 <div class="alert alert-warning">anything</div>

…if flash[:alert] contains anything.

When providing both, notice will prevail.

menu_item helper

Very handy for navigation menus:

<%= menu_item 'first' do %>First option<% end %>
<%= menu_item 'second', tag: :div do %><%= link_to root_path, 'Second option' %><% end %>
<%= menu_item 'third', class: 'nav-link' do %>Third option<% end %>

Renders:

<li class="active">First option<li>
<div><a href="/">Second option</a><div>
<li class="nav-link">Third option</li>

Parameters: menu_item(item, options)

  • item: item name
  • options: a has of options such as :class, etc… An additional option :tag is provided in case you don't want to use LI as default

errors_bar helper

Will indicate if any model in your form has an error. It supports multiple models in case you're combining two entities in the same form (i.e. using fields_for):

<%= errors_item @user %>

Renders:

 <div class="alert alert-danger">Please correct the highlighted fields.</div>

Parameters: errors_item(model[, model2…])

  • model: an active record model, or tableless
  • model2: you can provide more than one

The string Please correct the highlighted fields. is localized as errors_bar_message into English, French, German, Italian, Portuguese and Spanish. You can override this in your app if you need to, editing your locale yml files.

Error messages

I like to put the error messages right after the field in the form. sal provides an initializer that will patch ActionView::Base to wrap the field with the extra markup and the error message.

Given a model with a field:

<%= text_field_tag :title %>

that renders this simple view:

<input type="text" name="title">

Then it will add this extra HTML on an error:

<div class="has-error">
  <input type="text" name="title">
  <span class="help-block">✖ can't be blank</span>
</div>

It plays nice with Bootstrap forms. You won't have to touch any CSS.

  • Plain text fields:
  <div class="form-group">
    <%= f.label :password, 'Password' %>
    <%= f.password_field :password, :class => 'form-control' %>
  </div>
  • Checkboxes. Use this code for proper margin and alignment:
  <div class="form-group checkbox">
    <%= f.label :conditions, "#{f.check_box(:conditions)}I accept the terms and conditions".html_safe, :class => 'checkbox' %>
  </div>

Generators

Rails generators are very useful in the initial stages of development to create your admin interfaces. In particular:

  • I use bootstrap classes for layout
  • I don't use the show action/view
  • I don't want to autogenerate helper files for every model

To launch this generator:

bundle exec rails generate scaffold MyModel name:string -p --skip-test-framework

Interesting, but…

It fits my purposes, which may be different from yours. You might like the idea though: then fork it and call it peppermint, curry or whatever you prefer!

About

Sal (salt) is what you add to every meal. I add sal to my Rails projects

Resources

License

Stars

Watchers

Forks

Packages

No packages published