【Rails】rails newの書き方について徹底解説!

Rails

rails newとは

新しいrailsアプリケーションを作成するコマンドです。
このコマンドを実行するとrailsアプリケーションのひな形を自動で作成することができます。

rails newコマンドの実行方法
リンクをコピーしました

新規にアプリケーションを作るとき、rubyで土台となるファイルを一から作成していくのはものすごい大変な作業です。
ですが、rails newコマンドを使うとアプリケーションの土台となる大量のファイルを自動で作成することができ、開発効率が大幅にアップします。

rails newはターミナルで下記のように実行します。

shell
1
$ rails new アプリケーション名 (オプション)

「pikawaka」という名前のアプリケーションを作成したかったら下記のように入力します。

shell
1
$ rails new pikawaka

使用するrailsのバージョンを指定する
リンクをコピーしました

下記のように記述するとrailsのバージョンを指定してアプリケーションを作成することができます。

shell
1
$ rails _railsのバージョン_ new アプリケーション名

例えばrailsのバージョン5.2.1で作成したいときは下記のように記述します。

shell
1
$ rails _5.2.1_ new pikawaka

バージョンを指定しないとインストールされている最新のrailsのバージョンでアプリが作成されます。
newの後には書けないので順番を注意しましょう。

オプションを確認しよう
リンクをコピーしました

rails new実行時にオプションをつけると色々な指定をした状態でアプリのひな形を生成することができます。
主なオプションを確認してみましょう。

オプション 説明
-d アプリケーションで使用するデータベースを変更する
※何も指定しないとsqlite3
-B bundle installをスキップする
-T testを作成しない ※rails4で有効
-f 同名のファイルが存在するとき上書きでファイルを作成する
-s 同名のファイルが存在するときはスキップする
-q 進捗情報を表示しない
-S sprocketsを組み込まない
--skip-test testを作成しない ※rails5で有効
--skip-turbolinks turbolinksを無効化する
--api apiモードでアプリを作成

よく使うオプションの詳細を確認しておきましょう。

-dオプション
リンクをコピーしました

作成したアプリで使用するデータベースの種類を指定するオプションです。
オプションを使わない場合はsqlite3というデータベースで作成されます。

例えばmysqlを使いたいときは下記のように記述します。

shell
1
$ rails new アプリ名 -d mysql

アプリを作成した後にデータベースを変更するのは大変なので、アプリを作成するときに忘れずに選択しておきましょう。

-Tオプション
リンクをコピーしました

railsではデフォルトのテスト環境としてMinitestというものが用意されています。
このオプションを使用しないとアプリ作成時にtestフォルダが作成されます。
このオプションをつけるとtestフォルダを作成しないで、アプリを作成することができます。
※rails5からは「--skip-test」

-Bオプション
リンクをコピーしました

rails newを実行するとgemをインストールするbundle installコマンドも同時に実行されます。
アプリ作成後、Gemfileを編集する必要があればその後にまたbundle installを実行するので、アプリを作成するときのbundle installは不要ですよね。
そのときに指定するオプションです。

作成されるフォルダの内容を確認しよう
リンクをコピーしました

rails newで新規にrailsアプリケーションを作成すると自動でフォルダやファイルが作成されます。
たくさんファイルが作成されるので、よく使うファイルはどのフォルダに置かれているのかを覚えておくと良いでしょう。

今回は主に開くことになるフォルダをご紹介します。

appフォルダ
リンクをコピーしました

railsアプリケーション本体に関わるファイルが置かれているフォルダです。
このフォルダの中にさらに下記のフォルダがあります。

フォルダ名 中身
assets 画像やjavascript、stylesheetsファイルなど
controllers コントローラーファイル
helpers ヘルパーファイル
mailers メイラーファイル
models モデルファイル
views ビューファイル

configフォルダ
リンクをコピーしました

railsアプリケーションの設定に関わるファイルが置かれているフォルダです。
データベースを作る際に参照されるdatabase.ymlやルーティングを定義するroutes.rbファイルなどがあります。

application.rbファイルにはアプリケーション共通の設定情報を記述します。
この中に定義されているモジュール名は「rails new アプリ名」コマンドで入力したアプリ名と同じ名前がデフォルトで記述されます。

database.ymlファイルには作成するアプリのデータベース名を定義するコードが記述されています。
上と同じようにこの部分は「rails new アプリ名」コマンドで入力したアプリ名と同じ名前がデフォルトで記述されます。
つまりデーターベース名はアプリ名と同名になります。

このフォルダの中にさらに下記のフォルダがあります。

フォルダ名 中身
environments 環境ごとの設定ファイル
initializers 初期化処理や設定情報のファイル
locales 国際化対応のためのファイル

dbフォルダ
リンクをコピーしました

データベース関連のファイルが置かれているフォルダです。
マイグレーションファイル のバージョンを管理するschema.rbファイルやマイグレーションファイル が保存されているmigrateフォルダが置かれています。

publicフォルダ
リンクをコピーしました

静的に表示させたいファイルを保存しておくフォルダです。
検索エンジンのクローラーが自分のサイトにアクセスするのを制限するためのファイルであるrobots.txtやサイト情報を検索エンジンに知らせるsitemapなどのファイルはこのフォルダに保存します。

その後の流れ
リンクをコピーしました

rails newでアプリを作成後は基本的に下記の流れでアプリを作成していきます。

1.rails newコマンドで新規railsアプリを作成
2.作成されるGemfileを編集
3.bundle installコマンドを実行
4.rake db:createコマンドでデータベースを作成
5.routes.rbファイルにルーティングを定義
6.その他必要なファイルの作成 ...

上は一例ですが、このような流れでアプリは作成されます。
その最初に実行するコマンドがrails newコマンドだということを覚えておきましょう。

まとめ

rails newコマンドは新しくrailsアプリケーションを作るときに使うコマンドです。