Rails Tutorial エラーメモ

# はじめに
Railsの初歩知識を得るために最初の教材としてRails Tutorialから入る方は多いと思います。
自分もその口で、手を出してみたものの環境構築からひたすらエラー続きで**Rails serverすらうまくいかず**、一向に本編に移れず数日間浪費してしまいました。
(この経験も知識になると思っています)
ネットの記事に**自分も助けられた**ので、同じ道を辿る方への**道標の一つになれれば**と思います。

私がネットで**調べながら進めたこと**を、**章ごと**に**まとめて**読めるようにメモついでに記事にしてみました。
何かに残さないと、せっかく調べた内容も忘れてしまいますしね。

***と、いうことで...***
当記事は学習中に吐き出したエラーについて備忘録も兼ねて作成していますので、かなり**初歩内容**かと存じます。
エラー起こる度に追記していきます。

**環境**
Windows7
Ruby:2.4.6
Rails:5.1.6
RailsTutorialで推奨されているブラウザ版ではなく
自分のPCに環境構築しています。

# 1.5.2 Herokuにデプロイする
herokuを使用して実際にアプリケーションを公開してみようという章ですね。

```terminal:Console
$ git push heroku master
```
##エラー1
RailsTutorialにはこう書いてあります。
>警告メッセージが若干表示されることがありますが、今は無視してください。

いや、がっつりエラーで止まりました。なぜでしょう。

```terminal:Console
fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository

Please make sure you have the correct access rights
and the repository exists.
```

### 原因
gitがリモート(Heroku)のリポジトリを参照できていない。
ローカルリポジトリ内の`.git/config`を参照してみましょう。

### 対応
下記コマンドを実行して`.git/config`にpathを追加
.git/configの中を参照すると[remote "heroku"]が追加されています。

```terminal:Console
$ git remote add heroku https://git.heroku.com/アプリケーション名.git
```

##エラー2
さて、気を取り直してもっかいherokuにpushをトライ...おや
どうやらまた別のエラーが出たようです。
(エラーが出ない場合はRails Tutorialの先の章に進んでOKです)

```terminal:Console
$ git push heroku master

remote:!     Your account hoge@fuga.co.jp does not have access to hogefuga.
fatal: unable to access 'https://git.heroku.com/アプリケーション名.git/': The requested URL returned error: 403
```
「そのアカウントじゃ`.git/config`にセットしたURLにアクセスできないよ！」な話。
読めば意味はわかるが、なぜアクセスできないのかわからなかった。

### 原因
これはエラー1で登録するURLの認識が間違ってただけでした。
URL内のアプリケーション名のところでgitのリポジトリ名を入れていたのが原因。

### 対応
1.5.1で`$ heroku create`で作成した時に出力されたherokuのアプリケーションのURLを参考に、
`.git/config`の`[remote "heroku"]`にある`url=`の箇所にある記述をherokuのものに直してあげればおｋです。

```text:例
[remote "heroku"]
    url = https://git.heroku.com/hoge-fuga-99999.git
    fetch = +refs/heads/*:refs/remotes/heroku/*
```

上書き保存後、再度`$ git push heroku master`で成功しました。

# 2.2.1 ユーザーページを探検する
ここでは前項目の2.2でscaffoldで作成して
rails serverで起動したサーバーに実際にアクセスすることを求められます。

ということで下記にアクセス
`http://localhost:3000/users`

するとUsersのindex画面が表示されるとあるがエラー
`Showing C:/Users/hogehoge/Desktop/environment/toy_app/app/views/layouts/application.html.erb where line #7 raised:`
`TypeError: オブジェクトでサポートされていないプロパティまたはメソッドです。`

```Ruby:エラー箇所
 <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>`
```

### 原因
[同様の質問](https://teratail.com/questions/97827)に下記回答がありました。
> おそらく、WindowsのJavaScriptエンジンが古すぎることによって、CoffeeScriptのコンパイルに失敗している問題だと思われます。
Node.jsをインストールして、パスを通してください。
[引用元](https://teratail.com/questions/97827)

どうやらNode.jsをいれていないのが原因のようです。
参考1. [初心者向け！3分で理解するNode.jsとは何か?](https://eng-entrance.com/what-is-nodejs)
参考2. [Node.js を5分で大雑把に理解する](https://qiita.com/hshimo/items/1ecb7ed1b567aacbe559)

### 対応
ということでNode.jsを入れます。

下記を参照
[windows10にNode.jsをインストールする](https://qiita.com/Masayuki-M/items/840a997a824e18f576d8)

バージョン確認で正しくインストールできていることを確認
![node.js.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425803/87edd701-eabc-beda-077f-b279d7e8ab9f.png)

再度`rails sever`コマンド後に　[localhostのusersにアクセス](http://localhost:3000/users)

#おわりに
いきなり1.5.2から始まってますが、冒頭で書いた通りそこまでもエラー続きでした。
ただ記事にすると思い立ったのが 1.5.3 Herokuにデプロイ のエラーからでした。
恐らく環境構築の章でエラーだらけな人も多いと思うので、状況が再現できれば書いていこうと思います。