Ruby on Rails Gems What is a gem?


A gem is the equivalent to a plugin or an extension for the programming language ruby.

To be exact even rails is nothing more than a gem. A lot of gems are built on rails or other gems (they are dependent of said gem) or are standalone.

In your Rails project


For your Rails project you have a file called Gemfile. In here you can add gems you want to include and use in your project. Once added you need to install the gem by using bundler (See Bundler section).


Once you have done this, your Gemfile.lock will be updated with your newly added gems and their dependencies. This file locks your used gems so they use that specific version declared in that file.

devise (4.0.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
warden (~> 1.2.3)

This example is for the gem devise. In the Gemfile.lock the version 4.0.3 is declared, to tell when installing your project on an other machine or on your production server which specified version to use.


Either a single person, a group or a whole community works on and maintains a gem. Work done is usually released after certain issues have been fixed or features have been added.

Usually the releases follow the Semantic Versioning 2.0.0 principle.