Edited at

新規Railsプロジェクトの作成手順まとめ

More than 1 year has passed since last update.

rails new するときにいつも手順を忘れてしまい、

いろいろなサイトや記事を見ることになるので、自分用のメモとしてまとめておきます。


1. Gemfileを生成してvendor/bundle以下にRailsをインストールする

まずはRailsプロジェクトを作成します。

Rails Tutorialや入門書では

$ gem install rails

$ rails new project-app

と書かれていますが、これではシステムのgemにインストールされてしまいます。システムのgemはできるだけクリーンに保ち、gemはvendor/bundleに入れてbundle execで呼び出すようにするのが良いそう。

ですので、先にディレクトリを作成し、vendor/bundleにrailsをインストールします。

$ mkdir test-app

$ cd test-app
$ bundle init
Writing new Gemfile to /path/to/project_name/Gemfile

生成されたGemfileを下記のように編集します。(railsのコメントを外すだけ)


Gemfile

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "rails"


これで準備ができたので、下記のコマンドでRailsをインストールします。

$ bundle install --path vendor/bundle

この時に--path vendor/bundleを忘れずにつけること。

このオプションを付けることによって、プロジェクトのvendor/bundle以下にgemが格納されます。(一度オプションをつけてbundle installしたら、次回以降はオプションを付けなくてもvendor/bundle以下に格納されるようになります)


2. Railsプロジェクトを生成する

準備が整ったのでRailsプロジェクトを生成します。

$ bundle exec rails new . -B -d mysql --skip-turbolinks --skip-test

Rails Tutorialなどでは $ rails new test-app のようにプロジェクト名を指定していますが、ここを.(ドット)にすると現在のディレクトリにRailsプロジェクトが生成されます。

使用しているオプションは以下の通りです。

オプション
効果

-d, --database=DATABASE
指定したデータベースに変更する(railsのデフォルトのDBはsqlite3)

--skip-turbolinks
turbolinksをオフにする 

--skip-test
railsのデフォルトのminitestというテストを使わない時に付ける。RSpecなどほかのテストフレームワークを利用したい時に使うと良い

ーB, --skip-bundle
Railsプロジェクト作成時にbundle installを行わないようにする

ほかにも様々なオプションがあるのですが割愛します。コマンドがわからなくなった時や使えるオプションを調べたい時は $ rails new -h を実行してみましょう。ヘルプが表示され、使用できるオプションが確認できます。

Railsのインストール実行時にGemfileを上書きしていいか聞かれますが、yesにして続行します。


3. 必要なgemをインストールしてmasterにpush

Railsプロジェクトが生成できたら、Gemfileを編集して必要なgemをインストールしましょう。

Gemfileを編集したらbundle installを実行したら、gitの管理下に置いてgithubに公開します。

このとき、.gitignoreを編集しておくこと。私は https://www.gitignore.io/ でRails用に生成してくれる.gitignoreファイルをそのまま使っています。

$ git init

$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/username/hoge.git
$ git push -u origin master

これでWebアプリを作る土台ができました!


参考にしたサイトや記事