Skip to content
50

Awesome Rails Gem

A collection of awesome Ruby Gems for Rails development.

2.8k stars282 forks143 entriesLast push Mar 12, 2024 (2 years ago)License none

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

User >Authentication

Devise

Devise is a flexible authentication solution for Rails based on Warden.

In 2 lists

Knock

Seamless JWT authentication for Rails API.

Clearance

Rails authentication with email & password.

In 2 lists

Devise token auth

Token based authentication for Rails JSON APIs.

Sorcery

Magical Authentication for Rails. Supports ActiveRecord, DataMapper, Mongoid and MongoMapper.

In 2 lists

User >Authorization

Pundit

Pundit provides a set of helpers which guide you in leveraging regular Ruby classes and object oriented design patterns to build a simple, robust and scaleable authorization system.

In 3 lists

cancancan

Continuation of CanCan, the authorization Gem for Ruby on Rails.CanCan is an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access. All permissions are defined in a single location (the Ability class) and not duplicated across controllers, views,…

In 4 listsDetails

rolify

Role management library with resource scoping.

acl9

Acl9 is a role-based authorization system that provides a concise DSL for securing your Rails application.

In 2 lists

User >Omniauth

omniauth-facebook

omniauth-google-oauth2

omniauth-weibo-oauth2

omniauth-twitter

omniauth-github

omniauth-linkedin-oauth2

Active Record

Enumerize

Enumerated attributes with I18n and ActiveRecord/Mongoid support. It can be integrated with Simple Form.

In 2 lists

counter_culture

Turbo-charged counter caches for your Rails app. Huge improvements over the Rails standard counter caches.

In 2 lists

custom_counter_cache

A simple approach to creating a custom counter cache that can be used across multiple models.

Sequenced

Sequenced is a simple gem that generates scoped sequential IDs for ActiveRecord models.

FriendlyId

FriendlyId is the “Swiss Army bulldozer” of slugging and permalink plugins for ActiveRecord. It allows you to create pretty URL’s and work with human-friendly strings as if they were numeric ids for ActiveRecord models.

In 3 lists

AASM

State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid).

In 4 listsDetails

PaperTrail

PaperTrail lets you track changes to your models' data. It's good for auditing or versioning.

In 3 lists

paranoia

ActiveRecord plugin allowing you to hide and restore records without actually deleting them.

In 2 lists

Validates

Validates provides collection of useful custom validators for Rails applications, including:; EmailValidator; UrlValidator; SlugValidator; MoneyValidator; IpValidator; AssociationLengthValidator; AbsolutePathValidator; UriComponentValidator; ColorValidator; EanValidator (EAN-8 & EAN-13)

globalize

Rails I18n de-facto standard library for ActiveRecord model/data translation.

In 2 lists

deep_cloneable

This gem gives every ActiveRecord::Base object the possibility to do a deep clone that includes user specified associations.

social_shares

Check how many times url was shared in social networks.

In 2 lists

public_activity

Easy activity tracking for models - similar to Github's Public Activity.

goldiloader

Automatic ActiveRecord eager loading to reduce the number of database queries run by your application.

In 2 lists

ActsAsTaggableOn

A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.

In 2 lists

closure_tree

Easily and efficiently make your ActiveRecord models support hierarchies.

ActionStore

Store different kind of actions (Like, Follow, Star, Block ...) in one table via ActiveRecord Polymorphic Association.

Plugins

Spreadsheet

Library is designed to read and write Spreadsheet Documents.

Chartkick

Chartkick helps your to create beautiful Javascript charts with one line of Ruby.

In 3 lists

kaminari

A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for Rails 3 and 4.

In 3 lists

CKEditor

CKEditor is a WYSIWYG text editor designed to simplify web content creation. It brings common word processing features directly to your web pages. Enhance your website experience with our community maintained editor. ckeditor.com

In 3 lists

HTML::Pipeline

GitHub HTML processing filters and utilities. This module includes a small framework for defining DOM based content filters and applying them to user provided content.

Slack Notifier

is a simple wrapper to send notifications to Slack webhooks.

In 2 lists

Rails ERD

Generate Entity-Relationship Diagrams for Rails applications.

In 3 lists

Parity

Shell commands for development, staging, and production parity for Heroku apps.

Airbrussh

Airbrussh pretties up your SSHKit and Capistrano output

API

Grape

Microframework to create REST-ful APIs in Ruby.

In 2 lists

ActiveModel::Serializers

Serializer brings convention over configuration to your JSON generation.

In 2 lists

Jbuilder

Jbuilder gives you a simple DSL for declaring JSON structures that beats massaging giant hash structures. This is particularly helpful when the generation process is fraught with conditionals and loops.

In 2 lists

rest-client

Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.

In 3 lists

has_scope

Map incoming controller parameters to named scopes in your resources.

In 2 lists

Grape Swagger

Autogenerate documentation on Grape API.

In 2 lists

Grape Swagger UI

Display documentation that is generated using Grape Swagger.

In 5 listsDetails

apiary

Work together to quickly design, prototype, document and test APIs.

In 5 listsDetails

apiblueprint

API Documentation with powerful tooling.

In 2 lists

Email

letter_opener

Preview mail in the browser instead of sending.

In 2 lists

File Uploading

Carrierwave

Carrierwave is a classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.

In 4 listsDetails

carrierwave_backgrounder

Offload CarrierWave's image processing and storage to a background process using Delayed Job, Resque, Sidekiq, Qu, Queue Classic or Girl Friday.

CarrierWave Crop

Carrierwave extension to crop uploaded images using Jcrop plugin with preview.

CarrierWave ImageOptimizer

This gem allows you to simply optimize CarrierWave images via jpegoptim or optipng using the image_optimizer gem.

remotipart

Rails jQuery file uploads via standard Rails "remote: true" forms.

MiniMagick

MiniMagick is a ruby wrapper for ImageMagick or GraphicsMagick command line.

In 3 lists

fog

Fog is the Ruby cloud services library, top to bottom.

In 2 lists

refile

Refile is a modern file upload library for Ruby applications. It is simple, yet powerful.

In 2 lists

Paperclip

Easy file attachment management for ActiveRecord.

In 2 lists

Dragonfly

Dragonfly is for on-the-fly file processing - suitable for images or other attachments

shrine

File Attachment toolkit for Ruby applications

Searching

ransack

Ransack enables the creation of both simple and advanced search forms for your Ruby on Rails application.

In 4 listsDetails

elasticsearch-rails

Elasticsearch integrations for ActiveModel/Record and Ruby on Rails.

In 2 lists

Chewy

High-level Elasticsearch Ruby framework based on the official elasticsearch-ruby client.

In 2 lists

pg_search

pg_search builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search

In 2 lists

sunspot

Sunspot is a Ruby library for expressive, powerful interaction with the Solr search engine. Sunspot is built on top of the RSolr library, which provides a low-level interface for Solr interaction; Sunspot provides a simple, intuitive, expressive DSL backed by powerful features for indexing objects…

In 3 lists

searchkick

Intelligent search made easy with Rails and Elasticsearch.

In 3 lists

Scheduled/Recurrence Jobs

Whenever

Whenever is a Ruby gem that provides a clear syntax for writing and deploying cron jobs.

In 3 lists

Resque

Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.

In 3 lists

Rufus-Scheduler

Rufus-scheduler is a Ruby gem for scheduling pieces of code (jobs). It understands running a job AT a certain time, IN a certain time, EVERY x time or simply via a CRON statement.

In 3 lists

Delayed Job

Database based asynchronous priority queue system.

In 2 lists

Sidekiq

Simple, efficient background processing for Ruby.

sidetiq

Recurring jobs for sidekiq.

sidekiq-cron

Scheduler / Cron for Sidekiq jobs

In 2 lists

sidekiq-scheduler

Lightweight job scheduler extension for Sidekiq

In 2 lists

Sucker Punch

Sucker punch is a single-process Ruby asynchronous processing library.

In 3 lists

View Helper

formtastic

Formtastic is a Rails FormBuilder DSL (with some other goodies) to make it far easier to create beautiful, semantically rich, syntactically awesome, readily stylable and wonderfully accessible HTML forms in your Rails applications

In 2 lists

Simple Form

Simple form aims to be as flexible as possible while helping you with powerful components to create your forms. The basic goal of Simple Form is to not touch your way of defining the layout, letting you find the better design for your eyes.

In 2 lists

Nested Form

This is a Rails gem for conveniently manage multiple nested models in a single form. It does so in an unobtrusive way through jQuery or Prototype. It can also be integrated with Simple Form.

meta-tags

Search Engine Optimization (SEO) plugin for Ruby on Rails applications.

In 3 lists

active_link_to

active_link_to adds css 'active' class to your links.

In 2 lists

cells

Cells allow you to encapsulate parts of your UI into components into view models. View models, or cells, are simple ruby classes that can render templates.

i18n Country Code Select

I18n Country Code Select Form Helper for Rails 3 & 4.

Subdivision Select

A Rails plugin to populate a state/province select box from country_select.

cocoon

Dynamic nested forms using jQuery made easy

In 2 lists

Environment Variables

Config

Multi-environment YAML style configurations that helps easily manage environment specific settings in an easy and usable manner.

Figaro

Figaro is very simple, Heroku-friendly Rails app configuration using ENV and a single YAML file.

In 3 lists

dotenv

Dotenv is a gem that allows you to set your environment variables in .env file, and it will load it in to ENV.

In 4 listsDetails

opsworks-dotenv

Opsworks-dotenv let you configure the environment for you Rails application using OpsWorks, Chef and Dotenv.

Admin Panel

ActiveAdmin

ActiveAdmin is a administration framework for Ruby on Rails applications.

In 2 lists

active_skin

Flat skin for active admin.

RailsAdmin

RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.

In 2 lists

Typus

Typus is a control panel for Ruby on Rails applications to allow trusted users edit structured content.

administrate

A Rails engine that helps you put together a super-flexible admin dashboard.

In 2 lists

Trestle

A modern, responsive admin framework for Ruby on Rails

In 2 lists

Logging

Impressionist

Impressionist can log page impressions (technically action impressions), but it is not limited to that. You can log impressions multiple times per request. And you can also attach it to a model. The goal of this project is to provide customizable stats that are immediately accessible in your…

In 2 lists

Ahoy

Ahoy provides a solid foundation to track visits and events in Ruby, JavaScript, and native apps.

In 2 lists

Lograge

An attempt to tame Rails' default policy to log everything.

In 3 lists

Debug

byebug

Byebug is a simple to use, feature rich debugger for Ruby 2. It uses the new TracePoint API for execution control and the new Debug Inspector API for call stack navigation, so it doesn't depend on internal core sources.

In 4 listsDetails

pry-byebug

Pry navigation commands via byebug.

In 2 lists

pry-rails

Avoid repeating yourself, use pry-rails instead of copying the initializer to every rails project. This is a small gem which causes rails console to open pry. It therefore depends on pry.

awesome_print

Awesome Print is a Ruby library that pretty prints Ruby objects in full color exposing their internal structure with proper indentation.

In 3 lists

web-console

Web Console is a debugging tool for your Ruby on Rails applications.

spring

Spring is a Rails application preloader. It speeds up development by keeping your application running in the background so you don't need to boot it every time you run a test, rake task or migration.

In 5 listsDetails

rails-footnotes

Rails footnotes displays footnotes in your application for easy debugging, such as sessions, request parameters, cookies, filter chain, routes, queries, etc.

g

The Kernel.g that works like Kernel.p by using terminal-notifier or growl.

terminal-notifier

terminal-notifier is a command-line tool to send Mac OS X User Notifications, which are available in Mac OS X 10.8 and higher.

letter_opener

Preview mail in the browser instead of sending.

In 2 lists

Better Errors

Better errors replaces the standard Rails error page with a much better and more useful error page.; If you would like to use Better Errors' advanced features (REPL, local/instance variable inspection, pretty stack frame names), you need to add the binding_ _of__caller.

In 2 lists

RailsPanel

RailsPanel is a Chrome extension for Rails development that will end your tailing of development.log.

Coding Style

RuboCop

Rubocop is a Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide.

In 2 lists

Rails Best Practice

Rails best practice is a code metric tool to check the quality of rails codes.

Metric Fu

A fist full of code metrics

In 2 lists

Pronto

Quick automated code review of your changes

Testing

rspec-rails

Rspec-rails is a testing framework for Rails 3.x and 4.x.

In 4 lists

Capybara

Capybara helps you test web applications by simulating how a real user would interact with your app. And drivers:

In 2 lists

capybara-webkit

Capybara-webkit is a capybara driver that uses Webkit via QtWebkit.

In 2 lists

selenium-webdriver

Selenium-webdriver provides ruby bindings for WebDriver.

poltergeist

Poltergeist allows you to run your Capybara tests on a headless WebKit browser, provided by PhantomJS.

page-object

Page-object is a simple gem that assists in creating flexible page objects for testing browser based applications.

factory_bot

Factory_bot is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class (user, admin_user, and so on), including factory…

In 3 lists

factory_bot_rails

Factory_bot_rails provides Rails integration for factory_bot.

In 3 lists

factory_factory_girl

FactoryFactoryGirl lets you generate factory files more efficiently with naming rules.

Database Cleaner

Database Cleaner is a set of strategies for cleaning your database in Ruby.Support ActiveRecord, DataMapper, Sequel, MongoMapper, Mongoid, CouchPotato, Ohm and Redis.

In 2 lists

shoulda-matchers

Shoulda-matchers provides serveral matchers for testing common Rails functionality.

In 2 lists

ResponseCodeMatchers

ResponseCodeMatchers provides rspec matchers to match http response code.

SimpleCov

SimpleCov is a code coverage analysis tool for Ruby.

In 2 lists

Timecop

A gem providing "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code.

In 3 lists

VCR

Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.

In 4 listsDetails

Testing >Security

brakeman

Brakeman is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities.

In 6 listsDetails

bundle-audit

bundler-audit is a patch-level verification tool for Bundler which checks for vulnerable versions of gems and insecure gem sources.

In 4 listsDetails

Secure Headers

Secure Headers will automatically apply several headers that are related to security.

Production

Capistrano

Remote multi-server automation tool.

In 3 lists

Slowpoke

Rack::Timeout is great. Slowpoke makes it better.

Rack Attack

Rack middleware to blocking & throttling.

In 2 lists

Responders

A set of Rails responders to dry up your application.

production_rails

Best practices for running Rails in production.

Mina

fast deployer and server automation tool.

In 3 lists

Error Logging

Rollbar

Exception tracking and logging from Ruby to Rollbar.

In 2 lists

Airbrake

Notifier gem for integrating apps with Airbrake

In 2 lists

Errbit

Open source notifier gem compliant with Airbrake.

In 4 listsDetails

Database

rails_db

Rails Database Viewer and SQL Query Runner

In 2 lists

Asset Pipeline

Alaska

ExecJS runtime with persistent connection to nodejs, speeds up your coffeescript compilation process during development and deployment.

See category
94

Awesome Rust

rust-unofficial/awesome-rust

A curated list of Rust code and resources.

Fresh★ 60k1833 entriesPushed today
94

Awesome Mac

jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

Fresh★ 115k1316 entriesPushed today
94

Awesome Python

vinta/awesome-python

The definitive list that answers "I want to do X in Python, which tool should I use?"

Fresh★ 324k504 entriesPushed today
94

Awesome C++

fffaraz/awesome-cpp

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Fresh★ 74k1358 entriesPushed yesterday
94

Awesome Go

avelino/awesome-go

A curated list of awesome Go frameworks, libraries and software

Fresh★ 186k3119 entriesPushed yesterday
94

Awesome PHP

ziadoz/awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things.

Fresh★ 33k87 entriesPushed 2 days ago