TIS ENGINEER NOTE

ITエンジニアのためのキャリア向上ノウハウブログ

プログラミング

開発環境におけるRuby on Railsの新規プロジェクト作成手順【まとめ】

更新日:

Ruby on Railsで新規でプロジェクトを作成するたびに各手順をググっていては時間がもったいない。

ということで備忘録的な意味も込めて、開発環境においてRails新規プロジェクトを作成する一連の手順をまとめてみました。

はじめに

  • Rails5でプロジェクトを作成する前提で記載しております。
  • Rubyの環境構築完了後からの手順となっております。
  • コマンドはMac、Linux環境のものを記載しております。Windows環境で開発をしている方は適宜読み替えて実施してください。
  • 各種gemをローカルインストールすることでプロジェクト毎にgemを管理できる手順となっております。複数のプロジェクトをきれいに共存させたい方にオススメ

新規プロジェクト作成

ディレクトリ作成

Railsアプリケーション用のディレクトリを作成し、作成したディレクトリに移動します。

~/workspace $ mkdir myapp1

~/workspace $ cd myapp1/

bundle init & Gemfile修正

bundle initを実行します。

~/workspace/myapp1 $ bundle init

bundle initを実行するとGemfileが作成されますので、以下のように編集します。

# frozen_string_literal: true
source "https://rubygems.org"

# gem "rails"
gem 'rails', '~> 5.1.3'

※Railsのバージョンは適宜自分の使いたいものに書き換えてください。

その後Railsアプリケーション用のディレクトリにbundle installを実行します。

bundle install

~/workspace/myapp1 $ bundle install --path vendor/bundle

※このとき--path vendor/bundleは忘れないようにしましょう。

このオプションを使用することによって、アプリケーション用ディレクトリ配下の.bundleディレクトリ内のconfigファイルに以下のような記述が追加されます。

---
BUNDLE_PATH: "vendor/bundle"
BUNDLE_DISABLE_SHARED_GEMS: "true"

BUNDLE_PATHはbundleのインストール先パス

BUNDLE_DISABLE_SHARED_GEMSはシステムにインストールをされているgemを使用しないという設定です。

--path vendor/bundleは次回以降のbundle installでは指定する必要はありません。

※1回目のbundle installは失敗する場合があります。その際はもう一度同じコマンドを実行してください。2回目が成功で完了すればOKです。

rails new

次は現在のディレクトリにRailsプロジェクトを作成します。

/workspace/myapp1 $ bundle exec rails new . 

コマンドを実行した際、

Overwrite /home/tobita/workspace/api_react/Gemfile? (enter "h" for help) [Ynaqdh]

と表示されますが、Yを入力して処理を継続させてください。Gemfileを上書きするよーと言っています。

bundle execはvendor/bundle配下に存在するgemを指定するために必要な指定となっております。

毎回bundle execを指定するのがめんどい人は

alias be="bundle exec"

を.bashrcなどに設定するなりコマンドを打つなりするればbe rails s といったように省略形で実行できます。

MySQLでプロジェクトを作成したい場合

/workspace/myapp1 $ bundle exec rails new . -d mysql

APIモードでプロジェクトを作成したい場合

 /workspace/myapp1 $ bundle exec rails new . --api

以上でひとまずはRailsプロジェクトの作成が完了しました。

これ以降は大体の環境開発で必要となる初期設定について記載していきます。

データベース初期設定

僕は開発環境でも基本的にMySQLを使用しておりますので、MySQLでの方法を書いていきます。

他のDBの場合、各種データベース作成の手順に従って実施してください。

MySQLログイン

~/workspace/myapp1 $ mysql -u root -p

新規ユーザー作成&確認

GRANT ALL PRIVILEGES ON *.* TO myapp1@localhost IDENTIFIED BY 'myapp1';

select host,user from mysql.user;

database.yml修正

データベース接続に関する設定を行います。

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: myapp1
  password: myapp1
  socket: /var/run/mysqld/mysqld.sock
// 以下省略

基本的には先ほど作成したDBユーザーの設定をusername/passwordの部分に反映させるだけでOKです。

※socketについては環境によって異なってくるかと思いますので、基本的にはデフォルトのままにしておいてください。自動で生成されるconfigにsocketが存在しない場合、追加しなくて問題ありません。

DB作成&マイグレート

 /workspace/myapp1 $ bundle exec rails db:create

 /workspace/myapp1 $ bundle exec rails db:migrate

Gitの設定

基本的に開発環境にはバージョン管理が必須です。

その為アプリケーションのディレクトリにGitの設定を行います。

Git自体はインストールされている前提で説明いたします。

使用しているPCで初めてGitを使用する場合

git config --global user.name "Your Name"
git config --global user.email your.email@example.com

git init

 /workspace/myapp1 $git init

gitignoreを設定

git上にアップしたくないファイルを設定します。

Githubにある.gitignoreの設定例が一番確実かなと思います。

もうちょっとシンプルにまとめたい場合下記のリンクの設定もオススメです。

http://source.hatenadiary.jp/entry/2014/02/09/084318

git add

~/workspace/myapp1 $ git add -A

初期コミット

~/workspace/myapp1 $ git commit -m "Initialize repository"

リモート設定

Gitリポジトリサービスの登録は済ませておいてください。

ソースを公開したくない場合Bitbucketを

ポートフォリオ的にも活用したい場合はGitHubを

といった基準で自分は選択しています。

登録しているサービスでリポジトリを作成するとリモート設定のコマンドが表示されますので、そちらを実行しましょう。基本的には以下のような形です。

~/workspace/myapp1 $ git remote add origin git@github.com:XXXXXX/myapp1.git

git push

~/workspace/api_react $ git push -u origin master

まとめ

環境環境にてプロジェクトを新規で作成する際の初期作業はこんな感じです。

一連の流れに慣れるまでブックマークして活用などしていただけると嬉しい限りです。

よく読まれている記事

エンジニア独立

2019/5/29

パーソルテクノロジースタッフの派遣でエンジニア歴2年の僕が時給2000円を余裕で超えた話

今いる会社を辞めることとなり、今後のエンジニアとしての身の振りを検討中のてぃすです。 今回とある派遣会社にて、業務経験なしのRuby on Railsの案件を紹介してもらい、その時給が2000円を超えていました。 月給換算したら1,2年目の正社員の給与を余裕で超えてきます。派遣という働き方の印象がガラッと変わる体験をしました。 今回はエンジニア歴2年の僕にそんな素敵な待遇を提供してくれたパーソルテクノロジースタッフについて、実体験を交えて語っていこうと思います。 エンジニア派遣の「パーソルテクノロジースタ ...

続きを読む

エンジニア独立

2019/4/15

エンジニアがキャリアアップするための3つのテクニック

こんにちは、フリーランスエンジニアのてぃすです。 エンジニアという職業の中でも高収入とライフワークバランスを実現して充実した人生を送っている人もいれば、低い給料と長時間労働で疲弊しきっている人もいます。 僕も半年前まではエンジニアという職業を見限ってしまおうかと真剣に考えるほど、残念な状況にいました。 しかしこのまま終わってしまうのは悔しいと思い一念発起して行動を起こし、半年の間に月収を3倍以上あげることに成功しました。自分言ってて胡散臭い話ですが、実体験です。 キャリア向上を目指した行動の中には、意識し ...

続きを読む

エンジニア独立

2019/5/30

SIer・SESからWEB系エンジニアにキャリアチェンジする現実的な方法

エクセルで作らされる誰が読むかも分からないドキュメント 月に1回の帰社日 枯れた技術を言われた通りに扱うだけの毎日 スーツ勤務で下級労働者扱い SIer・SES系エンジニアとしての業務経験があり、かつ外の世界を知ったエンジニアから見たSIer・SES系のイメージってこんな感じですよね。 ここで言う外の世界の代表格と言えばWEB系ベンチャーやフリーランス。 カテゴライズの厳密さについては色々と意見はありますが、いわゆる自社サービスで利益を立てている企業と言えば分かりやすいでしょう。 最近ではエンジニアの待遇 ...

続きを読む

エンジニア独立

2019/4/15

エンジニアがリモートワークをして感動したお話

こんにちは。フリーランスエンジニアのてぃすです。 僕はエンジニアとして活動する中で、メインで参加しているプロジェクト以外にもフルリモートでもう1つのプロジェクトにも参加しています。 今日は実際にリモートワークってどんなもんなのかについてお話していこうと思います。 前置き リモートワークの話題については各種メディア、ブログやSNSでも度々盛り上がっています。 通勤時間の短縮になる 通勤で使う体力を仕事にまわすことができる 家庭の事情などで外で働けない人も活躍することができる などのポジティブな捉え方もあれば ...

続きを読む

エンジニア独立

2019/4/15

フリーランスエンジニアになって大変だったこと・苦労したこと

どうも、フリーランスエンジニアのてぃすです。 このブログでは基本的にITエンジニアの独立を勧めることが多いですが、今日はちょっと視点を変えて、フリーランスエンジニアとして活動する上で、苦労することに視点を当ててお話していこうと思います。 世間ではフリーランスをもてはやす声、それに対する反論などが飛び交っていますが、多くの意見が「フリーランス」という一括りにしたもので、実情を捉えていないものがほとんどであると感じています。 この記事では実際に僕がフリーランスエンジニアとして活動してきた中でリアルに体験してき ...

続きを読む

-プログラミング
-,

Copyright© TIS ENGINEER NOTE , 2020 All Rights Reserved Powered by AFFINGER5.