Railsで社内標準テンプレートを作ろう!初心者向けプロジェクト雛形のテンプレート化手順
生徒
「Railsアプリの新規作成って毎回同じ設定をやってる気がします…もっと効率よくできませんか?」
先生
「とてもいい気づきですね。それならプロジェクトの雛形をテンプレート化すると便利ですよ。」
生徒
「テンプレートって、どこかからコピーしてくる感じですか?」
先生
「はい。あらかじめ設定済みの雛形を用意しておけば、新しいRailsアプリを一瞬で同じ形に作れるんです。順を追って説明しましょう!」
1. 雛形(テンプレート)を作る目的とは?
Railsで新しいプロジェクトを作るとき、rails newコマンドによって基本的な構成は自動生成されます。しかし、実際の開発では毎回同じgemを追加したり、設定ファイルを書き換えたりする作業が何度も発生し、時間がかかりがちです。
そこで役立つのがRailsテンプレートです。テンプレートを用意しておけば、プロジェクト作成時に自動で設定を適用でき、初期作業を大幅に短縮できます。たとえば、よく使うGemを毎回追加しているのであれば、テンプレート側に書いておくだけで、プロジェクト作成と同時に反映されます。
初心者でも仕組みを理解しやすいように、非常に簡単なテンプレート例を見てみましょう。
# Gemfileにpryを追加するだけのテンプレート例
gem 'pry-byebug'
after_bundle do
say "pry-byebug をインストールしました!", :green
end
このように、Rubyで数行書くだけで「rails new のたびに行っていた作業」を自動化できます。手作業が減るだけでなく、チーム内で同じ構成を共有できるため、開発のスタート地点を揃えやすいというメリットもあります。
2. Railsテンプレートの基本的な考え方
テンプレートとは、Railsプロジェクトの自動カスタマイズスクリプトのようなものです。通常は人が手で行っている「Gemを追加する」「設定ファイルを書き換える」「不要なファイルを削除する」といった作業を、Rubyコードとしてあらかじめ書いておき、rails newのタイミングでまとめて実行できる仕組みです。
もう少しイメージしやすく言うと、テンプレートは「新規Railsアプリ作成時にだけ動く小さなRubyプログラム」です。そのプログラムの中で、Gemfileを編集したり、コマンドを実行したり、ファイルをコピーしたりできます。毎回同じ初期設定を行う場合、このテンプレートを使うことで作業を自動化できます。
たとえば、プロジェクトを作るたびに日本語化用のGemを追加したい場合、テンプレートには次のようなコードを書きます。
# Railsテンプレートのごく簡単なイメージ例
say "テンプレートを適用しています...", :green
gem "rails-i18n"
after_bundle do
say "rails-i18n の準備ができました!", :green
end
このように、テンプレートは「新規Railsアプリにどんな初期設定を施すか」をRubyで表現したものです。どのプロジェクトでも共通で使いたい設定をまとめておくことで、社内標準の雛形として活用しやすくなります。
3. テンプレートを使ったrails newの書き方
テンプレートを使うときは、rails newコマンドにオプションを1つ足すだけです。基本形は次のようになります。
# インターネット上(GitHubなど)にあるテンプレートを使う例
rails new my_app -m https://example.com/path/to/template.rb
# 手元のPCに置いたテンプレートファイルを使う例
rails new my_app -m ./template.rb
my_appの部分が「新しく作るRailsアプリの名前」、-mは--templateの省略形で「このテンプレートファイルを読み込んでください」という意味です。続けて書いているhttps://〜や./template.rbは、テンプレートファイルの場所(URLまたはファイルパス)を指しています。
たとえば、社内で共通利用するテンプレートをGitHubに置いておけば、開発者はみんな同じコマンドを1行実行するだけで、同じ構成のRailsアプリを素早く立ち上げられます。ローカルにテンプレートを保存しておきたい場合でも、./template.rbのように相対パスを指定するだけなので、コマンド操作に不慣れな人でも扱いやすいのが特徴です。
4. テンプレートの中身ってどうなってるの?
テンプレートファイルは、拡張子が.rbの「普通のRubyファイル」です。ただし、アプリ本体の処理を書くのではなく、新規Railsアプリを作るときに自動で実行される手順書のような役割を持っています。上から順番に読み込まれ、書いてある命令どおりに、Gemの追加や設定ファイルの編集が行われます。
イメージしやすいように、少しだけ中身をのぞいてみましょう。
# テンプレートが動いていることを画面に表示
say "テンプレートを適用しています...", :green
# Gemfile に devise を追記
gem "devise"
# bundle install が終わってから実行したい処理
after_bundle do
# devise の初期設定用コマンドを自動で実行
generate "devise:install"
say "Devise の初期設定が完了しました!", :green
end
sayは、ターミナルにメッセージを表示するための命令です。gem "devise"は、GemfileにdeviseというGemを追記しなさい、という意味になります。そしてafter_bundle do ... endの部分には、「bundle installが終わったあとに実行したい処理」をまとめて書きます。ここではgenerate "devise:install"によって、手作業なら自分で叩いていたコマンドをテンプレート側で代わりに実行してくれています。
このように、テンプレートの中身は「新規プロジェクトをどういう状態に仕上げたいか」をRubyのコードで並べたものです。最初は何をしているか分からなくても、gemは「Gemを追加」、generateは「コマンドを自動実行」、after_bundleは「インストール後の処理」といった大まかなイメージをつかんでおくだけでも、Railsテンプレートの全体像がぐっと理解しやすくなります。
5. 実際のテンプレート構成例
以下のような処理をテンプレートに組み込むことができます:
- Gemの追加(devise, kaminari, rubocopなど)
- 環境設定ファイルの自動変更
- デフォルトレイアウトやパーシャルのコピー
- rspecなどテスト環境の自動整備
- git initと初期コミット
これをテンプレート化すれば、毎回の初期設定が一瞬で終わります。
6. テンプレートを社内標準として使うには?
作ったテンプレートを社内で共有するには、次のような方法があります:
- GitHubにアップロードし、全員がURL指定で使えるようにする
- 専用のテンプレートリポジトリを作って、READMEに使い方を明記する
- ローカルに配置しておき、
rails new myapp -m ./template.rbのように使う
誰が使っても同じ構成になるため、プロジェクト間のばらつきが減り、保守もしやすくなります。
7. よくあるテンプレートの使い方例
Railsテンプレートでよく行う作業の例です:
rails g controller pages homeを実行してトップページを作る- application.html.erb に Bootstrap CDN を追加する
- rubocop.yml や .gitignore をコピーして初期設定を揃える
- ロゴやfaviconを追加して統一感を持たせる
こういった作業を毎回手でやるのは大変ですが、テンプレートなら1回の実行で完了です。
8. テンプレート化するときの注意点
テンプレートファイルを書くときの注意点はこちらです:
- Ruby構文のエラーに気をつける(実行中は中断されます)
- ファイルパスやコマンドのミスで動かなくなることもある
- 毎回同じ構成になるので、プロジェクトに合わせた微調整が必要な場合もある
まずは小さなテンプレートから始めて、徐々に育てていくのがおすすめです。
9. テンプレート化の効果は?
テンプレート化によって得られる効果は以下の通りです:
- 新規Railsアプリの立ち上げ時間が大幅に短縮される
- チーム内での構成統一ができて保守性が向上
- 手作業によるミスの防止になる
特にチームでRailsを使っている場合、テンプレートは強力な武器になります。
10. はじめてのテンプレート作りにチャレンジしよう
最初は「Gemを1つ追加するだけ」「トップページを作成するだけ」でもOKです。
テンプレートはRubyで書けるので、RailsやRubyの学習にもつながります。毎回の作業を自動化して、もっと楽しく、効率的にRails開発を進めましょう。