【初心者必見】Ruby on Railsで新規アプリケーションを作る際のお作法
Introduction
皆様こんにちわ,荒ぶっている新人プログラマーのChaaaBoooです!!
今回はRailsで新しいアプリケーションを作成しようとするときの作法についてのお話です.
Railsで特定のバージョンのGemを使用する際は参照先などを変更しないと時々Errorが発生します.
これはRailsで新規にアプリケーションを作成する際,Errorを回避し綺麗な形でプロジェクトを作成する作法について記したものです.
プロジェクト用ディレクトリ作成
まずはプロジェクト用のディレクトリを作成します.
$ mkdir test_project
$ cd test_project
rbenvのインストール
続いてrbenvのインストールを実施します.
rbenvとは,Rubyをバージョンごとに管理でき,尚且プロジェクトごとにバージョンの指定を行うことができるツールです.
インストールされていない方は下記コマンドでインストールを行ってください.
$ brew update
$ brew install rbenv ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
$ rbenv -v
Rubyのバージョン設定
今度は使用したいRubyのバージョンを選択します.
$ rbenv versions
※インストールされているRubyのバージョンを確認
$ rbenv local <使用したいバージョン>
※そのディレクトリ内で使用したいRubyのバージョンを設定
もし使用したいRubyのバージョンがインストールされていなかった場合は下記コマンドでインストールを行いましょう.
#インストールできるバージョン一覧
$ rbenv install -l
#インストール
$ rbenv install <インストールしたいバージョン>
# 更新
$ rbenv rehash
Gemfileの作成
使用するRailsのバージョンを選択するため下記コマンドを実行しGemfileを作成します.
尚、GemfileはGemを使用する際に使用するファイルでありRuby用のパッケージ管理ツールになります.
Gemを用いることで、Ruby用ライブラリのインストール、アンインストール、バージョン管理などを簡単に実行することができます.
$ bundle init
Gemfileの編集
Gemfile作成後,対象ファイルを開きRailsのバージョン指定を行いましょう.
$ vi Gemfile
source "https://rubygems.org"
gem "rails", "6.0.3"
# バージョン指定の部分は使用したいバージョンへ変更する.
Railsをパスを指定して'bundle install'
こうすることによりプロジェクト単位でGemのver指定を行う事ができます.
これをしないとRails側がGemfileインストール時,アプリケーションのGemfileに記載されているバージョンを参照すべきなのか
Rubyにインストールされているバージョンを参照すべきなのかわからずErrorを起こすので注意が必要です.
$ bundle install --path vendor/bundle
path以降は自身が読み込ませたいパスを記載すれば良いが'vendor/bundle'がベターです.
尚、Gemfileにライブラリ名およびバージョンを記載し"bundle install"を行うことでライブラリのインストールを行うことが出来ます.
尚、バージョン指定を行わず記載すると最新版をインストールする.
記載例:
# バージョンを固定してインストール
gem '<ライブラリ名>', '<バージョン>'
# バージョンの範囲指定(下記例の場合:バージョン1.0.0以上、2.0.0未満)
gem '<ライブラリ名>', '>= 1.0.0, < 2.0.0'
# 指定のバージョン以上(下記例の場合:バージョン1.3.0以上使用可能)
gem '<ライブラリ名>', '>= 1.3.0'
# 指定のバージョンの系列のみ使用可能(下記例の場合:バージョン5.◯は使用可能だが3.◯や6.◯は使用不可)
gem '<ライブラリ名>', '~> 5.0'
Railsプロジェクトの作成
いよいよRailsのプロジェクトを作成.
# 構文
$ bundle exec rails new <インストールしたいディレクトリ> -d <使用したいDBMS> --skip-bundle
# 例
$ bundle exec rails new . -d postgresql --skip-bundle --skip-keeps
※ '--skip-bundle'は'rails new'時に自動で行われる'bundle install'をスキップするオプション
※ '--skip-keeps'は'rails new'時に自動で生成される'.keep'ファイル作成をスキップするオプション
Conclusion
以上となります!!
如何だったでしょうか???
面倒な手順を踏むことにもなりますが,こうすることによって他と競合することなく
プロジェクトのカスタマイズを行う事ができます!!
皆様も是非,試して見てください^^
ではでは〜