Gem Version Build Status Code Climate Test Coverage Dependency Status

Simple admin interface for Ruby on Rails applications.


  • Built with common Rails controllers and views without DSL.
  • Supports namespaced models.
  • Has simple search with Ransack.
  • Uses Bootstrap 4.0.
  • Handles a lot of associations with Clusterize.js.
  • Has built-in WYSIWYG editor TinyMCE.
  • Mobile friendly.




Add this line to your application's Gemfile:

gem 'adminable'

And then execute:

$ bundle

Or install it yourself as:

$ gem install adminable

Getting Started

First things first. Add routes and create adminable/application_controller.rb class using generator:

rails g adminable:install
# => create app/controllers/adminable/application_controller.rb
# => insert config/routes.rb

Generating Resources

Assume you have model User, then run:

rails g adminable:resource users
# => create  app/controllers/adminable/users_controller.rb

For namespaced models, like Blog::Post, use:

rails g adminable:resource blog/posts
# => create  app/controllers/adminable/blog/posts_controller.rb

Customizing Fields

Change fields as you like inside fields method array:

class Adminable::Blog::PostsController < Adminable::ResourcesController
  def fields
    [, form: false),,,, form: false),,,

Fields Parameters


true or false, default: true.

Shows field on index page.


true or false, default: true.

Shows field on new/edit page.


true or false, default true for integer, boolean, float and decimal fields, false otherwise.

Adds text-align: center for field value on index page.

true or false, default: false.

Enables search for this field.

See Also

Built-in Fields

  • String
  • Text
  • Integer
  • Float
  • Decimal
  • Date
  • DateTime
  • Time
  • Timestamp
  • Boolean
  • Belongs To
  • Has Many

Generating Partials

You can use generator to copy original partial to your application.

rails g adminable:partial [layout] [type] [resource]

  • layout - index or form.
  • type - string, text etc. See Built-in Fields.
  • resource - Use controller name (e.g. users) to replace partial only for single controller or leave blank to replace partials for all controllers.


If model to_param method was overridden
class Adminable::Blog::PostsController < Adminable::ResourcesController
  def set_entry
    entry = @resource.model.find_by(slug: params[:id])



  1. Fork it (
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request


The gem is available as open source under the terms of the MIT License.