Windows10でRuby on RailsのViewを表示した

## 説明
初めてのRuby on Railsです。
前回の続きでビューを作ってみます。

## 環境
| モノ     | バージョン                        |
|:-----|:-----------------------|
| OS   |Windows10 Home（64bit） | 
| Ruby |2.2.6                   |
| Rails|5.0.2                   |
| Node.js|v6.10.2               |
| エディタ|Visual Studio Code  |

## コントローラの中身を消す
前回はコントローラの中でhtmlを返すようにしていましたが、それを一旦消します。

```ruby:\hogehoge\app\controllers\hello_controller.rb
class HelloController < ApplicationController
    def index
    end
end
```
これで、indexが呼ばれてもhtmlを返しません。

## テンプレートを作る
erbファイルを作ります。アクション名.html.erbになるので、index.html.erbです。

```ruby:\hogehoge\app\views\hello\index.html.erb
<h1>テンプレート</h1>
```
※Bodyの中身を書けばいいらしい。

## ブラウザで確認してみる
![20170409_001.png](https://qiita-image-store.s3.amazonaws.com/0/172106/0d768f99-2367-225b-2cf8-1005d256a120.png)
エラーになる。困る。

## Windowsで起こる問題らしい
既に調べがついているようで助かった。ありがたい。
[Rails ExecJS::ProgramError in Pages#home?](http://stackoverflow.com/questions/28421547/rails-execjsprogramerror-in-pageshome)
[Windows 7 の Rails で ExecJS が TypeError を吐くようになった](http://qiita.com/scivola/items/ec7625118fcf6de5203a)

## coffee-script-sourceのバージョンを1.8.0にする
[初心者は覚えておきたいRubygemsのコマンドまとめ](http://qiita.com/muran001/items/14f34b735e0a6b4af98c)で学ぶ。ありがたい。

* 確認

```
gem list coffee-script-source
```
>
```
*** LOCAL GEMS ***
>
coffee-script-source (1.12.2)
```

* よくわからないけどアンインストールしてみる

```
gem uninstall coffee-script-source
```
>
```
You have requested to uninstall the gem:
        coffee-script-source-1.12.2
>
coffee-script-2.4.1 depends on coffee-script-source (>= 0)
sprockets-3.7.1 depends on coffee-script-source (~> 1.6, development)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN] y
Successfully uninstalled coffee-script-source-1.12.2
```

* サーバを起動するとエラーになる

```
rails server
```
>
```
Could not find coffee-script-source-1.12.2 in any of the sources
Run `bundle install` to install missing gems.
```

なんか残っているっぽいので、[bundle install と bundle updateの違いについて](http://qiita.com/lasershow/items/1a048d03ddaaba98171e)を見て学ぶ。分かりやすい。感謝。

* とりあえず更新してみる

```
bundle update
```
>
```
（省略）
Using bundler 1.14.6
Installing coffee-script-source 1.12.2
Using execjs 2.7.0
（省略）
```

Gemfile.lockから消されるイメージを想定したのだけれど復活した。
[Rails で使う CoffeeScript のバージョンを指定する](http://qiita.com/shuhei/items/1418cbe930fe2360ca20)という記事をみたところ、
coffee-script-sourceはCoffeeScriptと依存関係にあるそうなので、
どうやらアンインストールそのものが見当違い。


* gemfileに追記する

```\hogehoge\Gemfile
# hogehoge
gem 'coffee-script-source', '1.8.0'
```

* もう一度更新してみる。

```
bundle update
```
>
```
Using bundler 1.14.6
Installing coffee-script-source 1.8.0 (was 1.12.2)
Using execjs 2.7.0
```

変わった！

```
gem list coffee-script-source
```
>
```
coffee-script-source (1.12.2, 1.8.0)
```

ふたつになった！よいのか！？

## ブラウザで確認してみる（2回目）
![20170409_002.png](https://qiita-image-store.s3.amazonaws.com/0/172106/3eda8b6f-662d-95e2-e4b6-8333832a5f19.png)
でた！

## coffee-script-source1.12.2をアンインストールする
この1.12.2が必要なのかわからないけどアンインストールしてみる。今度こそ。

```
gem uninstall coffee-script-source
```
>
```
Select gem to uninstall:
 1. coffee-script-source-1.8.0
 2. coffee-script-source-1.12.2
 3. All versions
>>2
Successfully uninstalled coffee-script-source-1.12.2
```

OKでした。ブラウザでも確認できたので~~これで行きます。~~すがこれでは行きません。

## coffee-script-sourceのバージョンを1.8.0にしなくても動くようにする
Node.jsをインストールすることによって、coffee-script-sourceのバージョンを1.8.0にしなくても動くということなのでやってみました。

### Node.jsのインストール
* https://nodejs.org/ からダウンロード。（node-v6.10.2-x64.msi）
* node-v6.10.2-x64.msiを実行して全部デフォルトでFinish

```
node --version
```
>
```
v6.10.2
```

### coffee-script-sourceを1.8.0から1.12.2に戻す

Gemfileから追加した文を削除（下の箇所）

```\hogehoge\Gemfile
# hogehoge
gem 'coffee-script-source', '1.8.0'
```

更新

```
gem update coffee-script-source
```
>
```
Updating installed gems
Updating coffee-script-source
Fetching: coffee-script-source-1.12.2.gem (100%)
Successfully installed coffee-script-source-1.12.2
Parsing documentation for coffee-script-source-1.12.2
Installing ri documentation for coffee-script-source-1.12.2
Installing darkfish documentation for coffee-script-source-1.12.2
Done installing documentation for coffee-script-source after 4 seconds
Parsing documentation for coffee-script-source-1.12.2
Done installing documentation for coffee-script-source after 0 seconds
Gems updated: coffee-script-source
```

1.8.0のアンインストールともろもろ

```
gem uninstall coffee-script-source（このあと1.8.0を選択する）
bundle update
gem list coffee-script-source
```
>
```
coffee-script-source (1.12.2)
```

ブラウザ上にcoffee-scirpt-sourceのバージョンを表示するように修正

```\hogehoge\app\controllers\hello_controller.rb
class HelloController < ApplicationController
    def index
        # OSコマンドでバージョンを取得する
        @gemversion=`gem list coffee-script-source`
    end
end
```

```\hogehoge\app\views\hello\index.html.erb
<h1>テンプレート</h1>
<h3><%= @gemversion %><h3>
```

## ブラウザで確認してみる（3回目）
![20170409_003.png](https://qiita-image-store.s3.amazonaws.com/0/172106/c3207670-f80c-7450-2e61-f51839b3acbf.png)
でた！！やった！！

---
ここまで。続きはまた次回。
\#先人にマジ感謝。
\#ゲムって呼んでたらジェムだったっぽい。
\#ブレンダーって呼んでたらバンドルだったっぽい。
\#Visual Studio CodeのgrepはCtrl + Shit + fということを知ったのが大発見。