MADOCHAN BLOG

30代未経験でWEBエンジニアをめざしてます!!!!!



Ruby on Rails環境構築からHerokuへのデプロイでつまったこと

少し前に神里さん@yoshito410kamが運営されている人生逆転サロンに入会しました。

アラサーのための【人生逆転サロン】を立ち上げた - アラサーからのプログラマー

訓練校でPHPやJAVAをやっていて、Rubyは完全にサボっていたんですがサロンの教材で再びRubyを学び直しています!
そんな先日、サロンの教材にしたがってRuby on Railsの環境構築からHerokuへのデプロイまで一気に済ませました。
教材は分かりやすいものだったんですが、びみょ〜にまごついたことがあったのでその辺書きとめます。

$ rbenv global 〇〇でRubyのバージョンが切り替わらない

参考記事: [Ruby] rbenv global 2.3.0 でバージョンが切り替わらない | deadwood

Pathの設定も問題ないし、.bash_profileにちゃんとeval "$(rbenv init -)"も追加されている。 切り替えたいバージョンのRubyもちゃんとインストールできていて公式ドキュメントでこうしろっていうのもちゃんとしているはずなのになぜか$rbenv global 2.5.1としてもバージョンが2.5.1に切り替わらない。 うーん、と思ってたところでこちらの記事を見つけて全く同じことが起きていたので解決しました!

前提として$rbenv global 〇〇はシステム全体で使うRubyのバージョンを指定し、指定の際は~/.rbenv/version のファイルを書き出してます。
一方、$rbenv local 〇〇とするとプロジェクトごとに使うバージョンを指定し、指定の際はカレントディレクトリに./.ruby-versionのファイルを書き出しています。

今回、$rbenv global 2.5.1としたあと$ruby versionsとしても

$ rbenv versions
  system
  2.3.0
* 2.4.0 (set by /Users/***/.ruby-version)
  2.5.1

となって切り替わっていないように見えていたんですよね。
でも$rbenv globalとするとちゃんと2.5.1となっていました。つまり切り替わってはいたんです。 ちゃんと切り替わっているのになぜ$rbenv versionsでは切り替わっていないように見えたのか…見ている先が違ったのです!!!

$rm .ruby-version.ruby-versionのファイルを消して、もう一度$rbenv versionsをしてみると…

$ rbenv versions
  system
  2.3.0
  2.4.0
* 2.5.1 (set by /Users/***/.rbenv/version)

ちゃんとrbenv global 2.5.1で書き出した`~/.rbenv/versionをみるようになって、切り替わっていることが分かりました。 参考にさせていただいた記事にある通り「コマンドの出力結果はきちんと確認」だなと思いました…

Herokuで作成していたアプリを削除する

以前に中途半端に作ってデータベースがうまくいかなくって放置していたアプリがHerokuにはありました。
中途半端なものなので消すか…と思ったんですが、消し方を忘れてまごついてしまいました。
というわけでアプリの削除方法です。

参考記事:【herokuコマンド】createからdestroyまで - Qiita

方法は1. Herokuのサイトで消す 2. herokuコマンドで消す の2つありましたが私はHerokuのサイトで消しました。

  1. Herokuにログインする
  2. 消したいアプリ選択
  3. タブの「Settings」を開く
  4. 下へスクロールすると一番下に「Delete app...」があるのでボタンをクリック
  5. アプリ名を入力して「Delete app」

以上!簡単!

gem 'pg'インストール時にエラー

参考記事:gem 'pg' インストール時のエラー解決方法

herokuではSQLiteが使えないためデータベースは以下のように設定します。

gem 'sqlite3', group: :development
gem 'pg', group: :production

Gemfileにこう書いて$bundle installをかけましたが、エラーに、、、
なんぞ?と思ったらどうやら、参考にした記事と同じエラーでpostgresqlがインストールされていないためのようです。
$ brew install postgresqlとしてインストールしたら今度はすんなりと$bundle installが通り、Herokuへのデプロイもできました!

こんな感じでまごつきつつも、最終的にはちゃんとデプロイまでできました。
サロンの教材に感謝…!!とりあえず数日中には一通り教材で復習して、何かしら作成します!!!