Ruby on Railsを触ってみる〜環境構築編〜

## はじめに
最近転職サイトを見ていると、最近のイケイケの企業の使用言語としてRubyが多く見受けられます。またその中のほとんどの企業がRuby on Railsを使っているため、私も触ってみようと思います。
Railsの情報はネット上にあふれているためこの記事では特に新しいことは書いておらず先駆者の記事を参考にしておこなった自分の作業の備忘録となります。


## Ruby on Railsの環境構築

macOSで環境構築をして行きます。
ほとんどの手順を以下の記事を参考にさせていただきました。
[Ruby初学者のRuby On Rails 環境構築【Mac】](https://qiita.com/TAByasu/items/47c6cfbeeafad39eda07)



## ターミナルを開く（mac初心者向け）
「command」＋「space」でSpotlightを開いて「ターミナル」と入力。
ターミナルを選んで起動します。
今回のコマンドは全てこのターミナルから行います。

## Homebrewのインストール
[Homebrew](https://brew.sh/index_ja)のサイトに記載されている以下のコマンドを実行し、Homebrewをインストールします。

```
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

Homebrewとは？
[homebrewとは何者か。仕組みについて調べてみた](https://qiita.com/omega999/items/6f65217b81ad3fffe7e6)

## rbenvのインストール

こいつをいれるとRubyのバージョン管理ができるようになるらしい

```
$ brew install rbenv ruby-build
```

pathを通す

```
$ echo 'export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"' >> ~/.bash_profile
```

rbenvの設定をローカルに反映

```
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
```

.bash_profileの適用

```
$ source ~/.bash_profile
```

## Rubyのインストール

{version}箇所は任意。まあ新しめのバージョンがいいと思います。
私は2.7.0をインストールしました。

```
$ rbenv install {version}
```

対象のバージョンをglobalで使えるようにする。
globalで基本となるバージョンを指定して、プロジェクトによってバージョンを変えたい場合は都度localで設定するのが良き。

```
$ rbenv global 2.7.0
```

最後にバージョンを確認

```
$ ruby -v
```

## Bandlerのインストール

```
$ gem install bundler
$ bundler -v
```

## Railsのインストール
インストールするディレクトリ作成

```
$ mkdir ~/rails_workspace
```

作ったディレクトリに移動

```
$ cd ~/rails_workspace
```

Gemfileを作成する

```
$ bundle init
```

Gemfileを編集する

```
$ vi Gemfile
```

「i」キーを押してINSERTモードに変更。
「# gem "rails"」となっている行を「gem "rails"」に変更

「esc」キーを押して「:wq」を入力し、編集終了。

Railsをインストール

```
$ bundle install --path=vendor/bundle
```

確認

```
$ bundle exec rails -v
```

プロジェクトを作成

```
$ bundle exec rails new test
```

作成したプロジェクトディレクトリに移動

```
$ cd test
```

railsの起動

```
$ rails server
```

**だがしかしここで問題！**

```
Node.js not installed. Please download and install Node.js
```

どうやらNode.jsが必要見たいなので、nodebrewを使ってインストールを行います。

## nodebrewをインストール
```
$ brew install nodebrew
```

バージョンの確認

```
$ nodebrew -v
```

## Node.jsをインストール

stable:安定版をインストール

```
$ nodebrew install-binary stable
```

上記コマンドでエラーが出た際は以下のコマンドを実施が再度コマンド実行

```
$ mkdir -p ~/.nodebrew/src
```

nodeのバージョン確認

```
$ nodebrew ls

v12.16.0
current: none
```

nodeの有効化
バージョン番号は合わせてください。

```
$ nodebrew use v12.16.0
```

pathを通す

```
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile
```

適用

```
$ source ~/.bash_profile
```

nodeのバージョン確認

```
$ node -v

-bash: node: command not found
```

**はい？？？**

インストールもpathも問題ないはずなのにnodeコマンドが実行できない。。
少し調べたらこのような記事が見つかりました。
[HomebrewでインストールしたnodebrewではNode.jsやnpｍが使えない](http://webdev.jp.net/homebrew%e3%81%a7%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%97%e3%81%9fnodebrew%e3%81%a7%e3%81%afnode-js%e3%82%84np%ef%bd%8d%e3%81%8c%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/)

他の記事ではnodeが使えるようなので、バージョンや環境差異など何かが影響しているのかも。
ひとまずリンク先にある手順でnodeを再インストール

まずはアンインストール

```
$ nodebrew uninstall v12.16.0
$ nodebrew clear v12.16.0
$ brew uninstall nodebrew
```

CURLコマンドでnodebrewをインストール

```
$ curl -L git.io/nodebrew | perl - setup
```

nodeの確認

```
$ node -v
v12.16.0
```

**できた！！！**

railsの起動のため、プロジェクトディレクトリに移動

```
$ cd ~/rails_workspace/test
```

rails起動

```
$ rails server

~~
/webpacker.yml. Please run rails webpacker:install Error: No such file or directory 
~~

```
nodeではない別のエラーが。。。
「Please run rails webpacker:install」とおっしゃっているので以下のコマンドを実行してみる。

```
$ rails webpacker:install

```
するとまた別のエラーが。

```
Yarn not installed. Please download and install Yarn from https://yarnpkg.com/lang/en/docs/install/
```
yarnが必要とのことなのでこちらもインストール

```
$ brew install yarn
```

再度webpakerのインストールを行う

```
$ rails webpacker:install
```

うまくいきました。
次こそrailsを起動

```
$ rails server

=> Booting Puma
=> Rails 6.0.2.1 application starting in development 
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 4.3.1 (ruby 2.6.3-p62), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:3000
* Listening on tcp://[::1]:3000
Use Ctrl-C to stop

```

無事起動しました。
この状態のままブラウザを使ってlocalhost:3000にアクセスします。
以下の画面が表示されれば成功です。

<img width="1196" alt="スクリーンショット 2020-02-14 20.10.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557038/88f86ff8-8b81-892e-8776-4e135f5c4039.png">


## 最後に
ちょこちょこ詰まるところもありましたが、先駆者たちのおかげで比較的簡単に環境構築できました。次回は[Railsをはじめよう](https://railsguides.jp/getting_started.html)をやってみてrailsやMVCに対する理解を深めていきます。

bundlerやgemに関する理解が甘いため後ほどちゃんと確認をします。

## その他参考にさせて頂いたQiita記事
[【Mac】node.jsインストール方法](https://qiita.com/yacchi1123/items/a85598bf7a35cb1307dc)
[MacにNode.jsをインストール]
(https://qiita.com/kyosuke5_20/items/c5f68fc9d89b84c0df09)
[Rails6 Webpackerでエラーが出た](https://qiita.com/libertyu/items/1eb74adc817ab8971100)