プログラミング

Railsプロジェクトの作成

こんにちは、Nanayakuです。

今回は、Railsプロジェクトの作成で使うコマンドを紹介します。

rails newとは

アプリケーションの雛形を作成します。

基本的なコマンドの書き方は

rails new アプリケーション名

になります。

「blog」と言うアプリケーションを作ろうとすると

rails new blog

となります。

作成される主要なディレクトリ・ファイル

app/ model・view・controllerなどを含む主要なディレクトリ
bin/ アプリケーションの起動/アップデート/デプロイをするためのスクリプトファイル
config/ ルーティング、データベースなどのアプリケーションの設定ファイル
db/ 現時点のデータベーススキーマ・データベースマイグレーションファイル
lib/ 拡張モジュール
log/ ログファイル
test/ Unitテスト、フィクスチャなどのテスト用コード
tmp/ キャッシュなどの一時ファイル
.gitignore Gitの管理下に置かないファイルを指定
.ruby-version デフォルトのRubyバージョンを指定
Gemfile
Gemfile.lock
Gemの定義ファイルとGemのバージョンを確認するファイル

 

rails newオプション

rails newにはオプションをつけることが出来ます。

オプションはアプリケーション名の後ろにつけます。

-d

「-d」はデータベースを変更したい時に使います。

rails newのデータベースはsqlite3がデフォルトになっています。

mysqlに変更したい場合は

rails new blog -d mysql

となります。

 

-T

「-T」はテストを作成させないコマンドです。

railsには、デフォルトでminitestと言うテストを使用しています。

このコマンドを実行しておく事で、rspecなどのテストフレームワークの導入が簡単になります。

 

-G

「-G」はgitignoreを作成させないコマンドです。

gitignoreを自分で作成したい時に使います。

gitignoreは、gitの管理下に置きたくないファイルを設定できる機能です。

 

-f

「-f」は、すでに存在するファイルを上書きして、もう1度やり直したい時に使います。

 

-h

「rails new -h」と打つことで、どのようなオプションがあるか確認することが出来ます。

画像のように表示されます。

 

rails db:create

「rails db:」はデータベースを操作するコマンドで、「rails db:create」はデータベースを作成するコマンドです。

create以外にも「drop」はデータベースを削除、「migrate」はマイグレーションを実行する時に使います。

 

Bundler

Bundlerは、railsアプリケーションに必要なGemパッケージの種類やバージョンの種類を管理してくれます。

これにより複数のPCで必要なGemパッケージをインストールしてくれる仕組みが出来ます。

bundle install

「bundle install」は、Gemfileと言うファイルに記載されたGemパッケージと、それを動かすのに必要なGemパッケージをインストールするコマンドです。

しかし、Gemのパッケージのインストールはrails newを続行した時に自動で行なっています。

rails newが実行された時にの流れは以下の通りです。

  1. 必要なファイルの作成
  2. 必要なGemパッケージが記載されたGemfileの作成
  3. Gemfileに基づいたGemパッケージのインストール(bundle install)
  4. 他の環境で使用するためのGemfile.lockの作成

rails newのオプションで「--skip-bundle」があり、これは上記にある「bundle install」を行わないオプションです。

rails new アプリケーション名 --skip-bundleと実行した場合は、ディレクトリ作成後「bundle install」をしなければなりません。

 

bundle installを使う流れは、

  1. gemfileにGemを追記する
  2. bundle installで追記したGemをインストールする

Gemを追加する場合は、この2ステップがセットになっています。

 

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

-プログラミング
-

Copyright© Nanayaku blog , 2019 All Rights Reserved Powered by AFFINGER5.