November 11, 2018
A Guide to Using Ruby on Rails Application Templates
As my experience with Ruby on Rails continues to grow I explore more and more by hitting the ground running with a base application template for new projects. In this guide, I'll discuss how I created my most recent template as well as what all get's included.
Ruby on Rails is by far the quickest path to a production worthy application that I know of. You can generate an entire blog in as little as 5 minutes using the built-in CLI. With that in mind, and my constant effort to provide tutorials around the framework, I took to building an application template for use going forward.
My Let's Build: With Ruby on Rails series has been a foundation for my learning of the framework. After several builds, I began to notice a lot of patterns involved in the way I needed to configure a new app each time I ran
Due to the nature of the tutorials, I wanted to provide "an approach from scratch" because many tutorials out there assume you know a lot before beginning. I still believe in this principle because practice makes perfect but in my particular case, I bypass a lot of the rudimentary configuration making use of an application template.
With an application template, you can create a new Rails app and define preconfigured decisions based on what you find you use the most in your past/current projects. Assuming you need to use a template, this can be a huge time saver.
This might not be for you if you really don't build a large number of apps but could prove worthy if you have ideas that you eventually want to build and don't want to waste time configuring the app.
What is a Ruby on Rails application template?
Application templates are simple Ruby files containing DSL for adding gems/initializers etc. to your freshly created Rails project or an existing Rails project.
In short, it's a way to install your favorite gems, configure your app, and even version control your project using one command.
How do I use the template?
If you're new to Ruby on Rails I invite you to check out my series so far linked at the bottom of this post. If you have some familiarity with the framework you may know by now that creating a new app is as simple as running
rails new my_app.
Passing the template through works like this
$ rails new my_app -m template.rb
Here our CLI will look for a file called
template.rb to guide it while it installs a new app.
Download a copy of that and
cd within the folder. There you can create your app by passing the
template.rb file through as I stated before.
From there your app will scaffold and you can move the app folder wherever you like on your system.
What comes with it?
The included gems are:
Webpack support + Tailwind CSS configured in the
Devise with a new username and name field already migrated in. Enhanced views using Tailwind CSS.
Support for Friendly IDs thanks to the handy friendly_id gem. Note that you'll still need to do some work inside your models for this to work. This template installs the gem and runs the associated generator.
Foreman support thanks to a Profile. Once you scaffold the template, run
foreman startto initialize and head to
webpack-dev-serverrunning all in one terminal instance. Note: Webpack will still compile down with just rails server if you don't want to use Foreman.
A custom scaffold view template when generating theme resources (Work in progress).
Git initialization out of the box
The entire Let's Build: With Ruby on Rails Series so far:
- Let's Build: With Ruby on Rails - Introduction
- Let's Build: With Ruby on Rails - Installation
- Let's Build: With Ruby on Rails - Blog with Comments
- Let's Build: With Ruby on Rails - A Twitter Clone
- Let's Build: With Ruby on Rails - A Dribbble Clone
- Let's Build: With Ruby on Rails - Project Management App
- Let's Build: With Ruby on Rails - Discussion Forum
- Let's Build: With Ruby on Rails - Deploying an App to Heroku
- Let’s Build: With Ruby on Rails – eCommerce Music Shop
- Let’s Build: With Ruby on Rails – Book Library App with Stripe Subscription Payments
- Let’s Build: With Ruby on Rails – Trade App With In-App Messaging
- Let’s Build: With Ruby on Rails – Multitenancy Workout Tracker App