There are numerous frameworks and libraries out there that can really speed up your Rails development, but which ones should you know about? In this article, I’ll go over the 10 gems that I believe every Ruby on Rails developer should know how to use. Although there are hundreds of gems out there (no pun intended), these are the ones I’ve used most frequently in my time as a software developer and they have made my life easier each and every time I’ve used them.
Paperclip is a file attachment tool for ActiveRecord. It’s primarily designed for, but not limited to, photo uploads for photo albums or product images in e-commerce applications. Due to its ease of use and built-in options, it’s become a very popular gem with Rails developers. It’s also simple enough to integrate with any other system that uses files as attachments such as Bugzilla, Intercom and Basecamp 3.
If you’re using Rails and haven’t tried Devise, you’re missing out. The authentication solution gives you a full suite of features including: user registration and login, password resets, account activation, and more. Add custom domains to your applications in minutes.
Shrine is a file attachment processor for Rack applications. Shrine makes it simple to plug in a background processor for your attachments so that you don’t have to worry about it in development or production. If you are already using CarrierWave, Paperclip, Dragonfly, etc., there is no reason to switch; however, if you aren’t, I highly recommend Shrine!
4) Active Model Serializer
ActiveModel::Serializer is a module that allows you to declare serializers for your models in one place and have them automatically registered. It's compatible with Rails, Sinatra and Padrino as well as any other object supporting the standard Marshal API (e.g., ActiveRecord).
Sometimes you want to save and upload files that aren’t just text. CarrierWave is a gem that makes file management easy, even when dealing with lots of different file types, formats and sizes. You can configure how and where your files are stored and give them ACLs (access control lists) so you can easily decide who has access to what. You can also use it to protect against cross-site request forgery (CSRF) attacks by verifying requests before saving.
6) Active Merchant
Active Merchant is an open source e-commerce solution. It is designed to handle payments, shipping, and order management all in one integrated system that you can use at zero cost and with no strings attached. It is available for free under the terms of a GPLv3 license.
7) Simple Form
ActionCable is an ‘action-oriented’ real-time web framework for building applications that need to support real-time interactions in both directions. Think, websockets. If you’re planning to build a chat app or any sort of interaction requiring instant updates, ActionCable is what you’re looking for.
9) Sidekiq Pro
Sidekiq is an efficient asynchronous job processing library for Ruby. An individual job object is a simple hash with a type and a payload. The same job class can be used to process jobs in multiple environments, and jobs can have any type of object as a payload. This makes it possible to process JSON, YAML, XML or any other text-based content natively without third-party extensions.
Puma is an open source, server-side, Web application framework for writing concurrent applications in Ruby. It's inspired by Rack and uses a natural thread-based concurrency model that’s designed to take advantage of modern multicore hardware. You can use Puma as a drop-in replacement for any standard Rack app or run it with threads, spawning multiple web processes per machine if desired.
Every new developer wants to be hired. And every hiring manager needs to screen candidates carefully. Finding these candidates—and locating just one gem—takes a lot of time, effort and money. For companies with higher staff turnover rates, it can make sense to hire ruby on rails developers from consulting companies that hire frequently and also have specialized training programs to quickly prepare them for Ruby code development. With recruiting services like Robert Half, you can hire exceptional talent without spending excessive amounts of time or money looking for it.