◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

DMM WEBCAMP転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
TECH::CAMP教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
DMM WEBCAMP ビジネス教養コース【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
2月生募集中!当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のDMM WEBCAMP(旧WEBCAMP PRO)。
1月生は満員となっております。2月生募集に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

はじめに

Railsアプリケーションの開発は、Rubyなど他のプログラム言語と違って、すべて最初から作り始めることはほとんどありません。

Railsフレームワークが準備してくれているひな形を生成し、そのひな形の必要な部分を修正、追加して開発していきます。

そのため、常に作らなければいけないような基本的な構造がはすでにできあがった状態で開発を始めることができますので、Railsの開発は効率が良いわけです。

そんな「ひな形の生成」を行うのが、newコマンドです。

すでに使用したことのある人は多いかと思いますが、意外と詳しい構文などを知らない人は少なくないのではないでしょうか。

今回は、改めて「newコマンド」の使い方やオプション、生成されるひな形のディレクトリ構成などを詳しくお伝えいたします。

Railsを始めたばかりの人はもちろん、改めて振り返って理解を深めたい人など、ぜひお読みください。

Railsのnewコマンドとは

newコマンドは、冒頭で説明したとおり、Railsアプリケーションのひな形を生成してくれるコマンドです。

このコマンドを実行するだけで、アプリケーション名のディレクトリが生成され、そこに最低限の動くRailsアプリケーションができあがります。

そんなnewコマンドの構文は、以下のようになっています。

rails new アプリケーション名 [オプション]

オプションはなくても実行できますので、多くの参考書や解説サイトでは、Railsアプリケーションを作るとき、コマンドプロンプトで「rails new app_name」を実行するというだけで、説明を終えているわけです。

なお、newコマンドでアプリケーションが生成されるのは、newコマンドを実行したディレクトリ上です。そこにアプリケーション名のディレクトリが生成され、その中に必要なディレクトやファイルが追加されるのです。

例えば、「C:\Rails」上で、newコマンドを実行した場合、以下のような構成になります。

C:\Rails
├─アプリケーション1
│  ├─app
│  │   :
:  :
├─アプリケーション2
├─アプリケーション3
:      :

このように、アプリケーションごとにディレクトリを作ってファイルを格納することで、それぞれの独立性を保っているわけです。(もちろん、ベースとなるRailsのバージョンなどは影響します)

アプリケーション名のディレクトリを作らずに生成する方法

あまり発生しないかもしれませんが、アプリケーション名のディレクトリを作成せず、今いるディレクトリにアプリケーションを生成したいことがあります。

そんな場合は、アプリケーション名のところを「.」にします。すると、コマンドプロンプト上、今いるディレクトリにRailsアプリケーションのファイルやディレクトリが生成されます。

rails new .

なお、このときRailsアプリケーションの種々のファイルがすでに存在するディレクトリには上書きできませんので、注意してください。

古いバージョンのRailsを利用したい場合

古いバージョンのRailsアプリケーションのひな形を作りたい場合、newコマンドに指定することで、指定したバージョンのひな形を生成することが可能です。

バージョン3.1.0の場合
rails _3.1.0_ new weblog

もちろん、そのバージョンのRailsがインストールされている必要があります。

“未経験”でもたった1ヶ月で営業からエンジニアとして転職!『WebCamp』受講者インタビュー

生成されるディレクトリ

では、newコマンドで自動生成されるディレクトリについて、解説しておきましょう。

Railsアプリケーションを作ろうとしたときに起こる最初の壁は、「どこに何があるのか分からない」「どのファイルを修正すれば良いのか見当も付かない」ということです。

ただし、生成されるファイルは膨大ですので、ディレクトリについてだけ説明し、ファイルについては重要なものだけをピックアップして紹介します。(Railsのバージョンは5.2で、オプション指定などしない場合に生成されるものです。バージョンやオプション指定などによって違う場合があります)

ディレクトリ・ファイル 説明
app/ アプリケーションを格納するディレクトリ(開発では主にこのディレクトリ以下を修正する)
assets/ JavaScriptやcss、それらで使う画像などのファイルを格納するディレクトリ
assets/images/ スタイルシートや画像などを格納するディレクトリ
assets/javascript/ JavaScriptのスクリプトを格納するディレクトリ
assets/javascripts/aplication.js JavaScriptをインクルードする場合に追記するファイル
assets/stylesheets/ スタイルシートを格納するディレクトリ
assets/javascripts/stylesheet.js CSSをインクルードする場合に追記するファイル
controllers/ コントローラを格納するディレクトリ(ここに格納されるファイルに複雑な処理が書かれることは原則としてない)
controllers/application_controller.rb アプリケーション共通のコントローラ
helpers/ ヘルパーを格納するディレクトリ
helpers/application_controller.rb アプリケーション共通のヘルパー
models/ モデルを格納するディレクトリ(バリデーションやエラーメッセージの定義もここに格納するファイルに書かれる)
view/ ビューを格納するディレクトリ(ユーザーインターフェースを実装するファイルが格納される)
views/layouts/ ビューのレイアウトとして使用するテンプレートを格納するディレクトリ
views/layouts/application.html.erb アプリケーション共通のレイアウト
bin/ コマンドプロンプトから実行するツールが格納されているディレクトリ
config/ プロジェクトの設定ファイルを格納するディレクトリ
config/routes.rb ルーティング設定ファイル(HTTPリクエストとURLから、どのページでどんなアクションを行うのかを定義するファイル)
config/environments/ 環境単位の設定ファイルを格納するディレクトリ
config/initializers/ 初期化ファイルを格納するディレクトリ
config/locales/ 辞書ファイルを格納するディレクトリ(日本語ファイルであるja.ymlを格納するのもここ)
db/ データベースの設定ファイルを格納するディレクトリ
migrate/ マイグレーションファイルを格納するディレクトリ
lib/ 複数のアプリケーション間で共有するライブラリを格納するディレクトリ
assets/ 自分で生成したライブラリを格納するディレクトリ
tasks/ 自分で生成したRakefileを格納するディレクトリ
log/ ログファイルが格納されるディレクトリ。ログファイルはアプリケーションと環境ごとに作成される
public/ Web上に公開するファイルを格納するディレクトリ
storage/ ActiveStorage関連のファイルが格納されるディレクトリ
tmp/ キャッシュなど、一時的なファイルを格納されるディレクトリ
test/ アプリケーションのテストに使うファイルを格納するディレクトリ
vendor/ ライブラリや他のアプリケーションで共有するような外部ライブラリを格納するディレクトリ
rails/ rails:freeze:gemsタスクでバージョンを固定したRailsを格納するディレクトリ
plugins/ プラグインを格納するディレクトリ
Gemfile gemの依存関係を指定できるファイル
README.md 説明書
Rakefile Railsアプリケーションを実行するために必要な一連の処理(タスク)を定義するためのファイル
config.ru HTTP送受信処理を行うRackモジュール用の設定ファイル

この中でも特に重要なのは、以下の5つです。

app/controllers

Railsの基本構造である「MVC」のCにあたるControllerが格納されるディレクトリです。複雑な処理が記載されることはありませんが、プログラムの流れを追うときの起点となりますので、重要なポイントです。

app/models

「MVC」のMにあたるModelが格納されるディレクトリです。バリデーションやエラーメッセージ、関連付けなどのデータベースと関わる定義を記載することが多いかもしれません。

app/view

「MVC」のVにあたるViewが格納されるディレクトリです。ユーザーが見て操作する画面(ユーザーインターフェース)のベースとなるファイルが入りますので、最後まで微調整などが必要になることの多いディレクトリだと言えるでしょう。

config/routes.rb

ルーティング設定用のファイルです。HTTPリクエストとURLに従って、どんな画面でどんなアクションを行うのかを定義する、Railsアプリケーションの動作の要となるファイルです。

Gemfile

読み込むgemファイルを定義しているファイルです。このファイルにgemファイルを記載しておくことで、別の環境へ移行しても、必要なgemを読み込むことができます。(「gem install」などで読み込むと移行先でも同様の方法でgemを導入する必要があります)

コツコツ独学×スクールで実践。未経験からエンジニアに転職!【WebCamp卒業生インタビュー】

豊富なオプション

今までRailsの学習をしていく中で、newコマンドのオプションについて気にしていなかったかもしれません。

しかし、Railsの学習ではなく、商用アプリケーションの開発などの実践では、newコマンドのオプション指定は避けられません。

なぜなら、newコマンドは、オプション指定をすることで、不要なツールのインストールをやめたり、データベースを変更したりといった、環境に合わせたカスタマイズを行うことができるからです。

では、具体的にどのようなオプションがあるのかを紹介しましょう。

オプション 説明
-r, -ruby=PATH rubyバイナリのパス
-m, -template=TAMPLATE テンプレートのパス
--skip-gemfile Gemfileを作成しない
ーB, --skip-bundle bundle installを行わない
-G, --skip-git Git の管理に含めないファイルを指定する「.gitignore」を組み込まない
--skip-keeps .keepを組み込まない
-O, --skip-active-record active recordを組み込まない
-S, --skip-sprockets アセットファイル(JS、CSS、画像など)を管理するツール「sprockets」を組み込まない
--skip-spring 常駐して開発効率をあげる「springアプリケーション」をインストールしない
-d, --database=DATABASE データベースの種類を指定する(指定しなければsqlite3)
-j, --javascript=JAVASCRIPT 組み込むJavaScriptライブラリを指定。(指定しなければjquery)
-J, --skip-javascript javascriptを組み込まない
--dev github リポジトリ上の自分のコードから作成する
--edge github リポジトリ上の最新のコードから作成する
-T, --skip-test-unit テストフレームワークを組み込まない(指定しなければ、minitestというテストフレームワークが導入される)
--rc=RC オプション設定を記載しておける.railsrcファイルを読み込んでnewを実行する
--no-rc .railsrcファイルの記載を無視する
-f, --force ファイルが存在する場合に上書きする(指定しなければ、上書き確認が行われます)
-p, --pretend 自動生成されるファイルを生成せずに実行結果を確認する
-q, --quiet 処理の進捗ログを出力しない
-s, --skip すでに存在するファイルはそのままスキップして処理を続ける
-h, --help ヘルプを表示する
-v, --version バージョンを表示する

未経験から上京し、エンジニアとしてチームラボグループに転職!【WebCampPro卒業生インタビュー】

まとめ

Railsアプリケーションのひな形を作るnewコマンドについて、解説しました。

ひな形のファイルにどんなものがあるのかを知っていれば、いざというときにどこを修正すべきなのかの見当が付けられますので、大きな武器になることでしょう。

また、学習を進める上でも、必ず役に立つと思います。

newコマンドのオプションについては、それほど頻繁に使うものではないかもしれません。

しかし、newコマンドはひな形というアプリケーションの基本を生成する重要な処理です。そこで適切な設定などができていなければ、修正するのに大きな労力がかかってしまいます。

個人で学習しているときはそれほど気にすることはないかもしれませんが、商用のアプリケーション開発や企業内で開発作業をするときなどは、基本的な知識として知っておかなければいけない内容でしょう。

もちろん、すべてを暗記する必要はありませんので、何かあれば、本記事を参照していただければ幸いです。

・newコマンドは、Railsアプリケーションのひな形を作る
・Railsアプリケーションのappディレクトリに、アプリケーションの処理が格納されている
・newコマンドはオプションによって機能を切り替えることができる

DMM WEWBCAMPについて

DMM WEBCAMPは3ヶ月間で未経験から即戦力エンジニアを育成する転職保障付きのプログラミングスクールです。1ヶ月でプログラミング・Webデザインを学ぶ通い放題の「ビジネス教養コース」も展開しています。

DMM WEBCAMPを運営する株式会社インフラトップ では、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

2月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のDMM WEBCAMP(旧WEBCAMP PRO)。
1月受入枠は満員となっております。2月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWEBデザイン・プログラミングを学びたい方はこちら!


▼ついに開講!オンラインでWEBデザイン・プログラミングを学びたい方はこちら!

 

【インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!

ブラジルから帰国し技術をつけようとRubyエンジニアを目指してWebCampでRubyを学び、見事Webエンジニアとして転職を果たした田中さんにお話を伺いました。

Rubyの学習がしたい。基礎をしっかりと理解したい

転職のサポートがほしい

と考えている方はぜひお読み下さい。

【WebCamp卒業生インタビュー】1ヶ月でRubyをゼロから学び、Webエンジニアとして転職!

おすすめの記事