LoginSignup
6
10

More than 5 years have passed since last update.

『小学生でもわかるRuby on Rails入門』で初学者が躓いたことメモ〜前編〜

Last updated at Posted at 2017-07-02

こちらの記事について

超初学者が、『小学生でもわかるRuby on Rails入門』
を使用して、初めてRuby on Railsを動かしてみたときに、躓いたり調べたりしたことの備忘録です。OSはmac OSX Yosemite、Rubyのバージョンは2.2.2です。

備忘録として、躓いた順に書いていますが、要はこの教材のRubyのバージョンを把握し、きちんと環境を整えてから挑むべきであったと反省しています。初学者の方がこの記事をご覧でしたら、まずは下記参照記事などをご覧になって環境構築してから挑むことをお勧めします。
参照記事↓
『初心者必見!Ruby開発環境構築おすすめの方法【Mac/Windows別】』

権限がない

『第1章 Ruby on Railsをはじめよう』で早速エラーが発生。

ターミナル
gem install rails
エラー内容
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

こちらのディレクトリを書き換える権限が無いよ、ということのようです。シンプルにこちらで回避しました。

ターミナル
sudo gem install rubygems-update

参照記事↓
『MacでRuby on Railsを使うおさらい-RubyGemsのアップデート-』

Homebrewをインストールする

『第3章 実際にRailsアプリを作ってみる』で mitakalab-twitter をインストールしようとするとエラーが発生しました。

ターミナル
rails new mitakalab-twitter
エラー内容
Rails is not currently installed on this system. To get the latest version, simply type:
    $ sudo gem install rails
You can then rerun your "rails" command. 

そこで言われたとおりに素直に入力すると、パスワードの入力を求められたのちに

ターミナル
sudo gem install rails

こう怒られました

エラー内容
ERROR:  Error installing rails:
    activesupport requires Ruby version >= 2.2.2.

Rubyのバージョンが2.2.2でないとだめだったんですね。
そもそも、MacにはもともとRubyがインストールされているからそのままでOKなのではなく、複数のRubyを切り替えれる環境を構築する必要があったんですね…。

というわけで気を撮り直して、Macにhomebrewを

ruby-buildをインストール

ターミナル
brew update
brew install rbenv ruby-build

インストールに時間がかかるし、🍺とか出てきちゃって変なものがダウンロードされているんじゃ無いかと心配になりました。

rbenvの初期化スクリプトを.bash_profileへ追加

ターミナル
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

ちゃんと動いているか確認

ターミナル
rbenv -v

参照記事↓
『初心者必見!Ruby開発環境構築おすすめの方法【Mac/Windows別】』
『homebrewとは何者か。仕組みについて調べてみた』

Rubyのバージョンを合わせる(homebrew)

インストールされているRubyのバージョンを確認する

ターミナル
rbenv versions

アスタリスクが付いている行が現在のバージョンです。使用したいバージョンがあればバージョンの変更を、なければインストールをします。

指定したいバージョンをインストールする

ターミナル
rbenv install 2.2.2

指定のバージョンに変更する

ターミナル
rbenv global 2.2.2

bundlerをインストール

ようやっとrubyのバージョンを変更できるところまでたどりつきましたが、いざmitakalab-twitter をインストールしようとするとまた同じエラーが発生しました。

ターミナル
rails new mitakalab-twitter
エラー内容
Rails is not currently installed on this system. To get the latest version, simply type:
    $ sudo gem install rails
You can then rerun your "rails" command. 

homebrewでRubyのバージョンを変更してもgemでは変更できない…。RubyGemはRubyソフトウェアライブラリを管理するシステムで、macには元々Rubyとそれに不足したGemが入っているため、Gemを管理するためのシステムを入れる必要がありました。それがbundlerです。

bundlerをインストールする

ターミナル
gem install bundler

rbenvでrehashする

ターミナル
rbenv rehash
bundler -v

bundlerの設定ファイルを作成する

ターミナル
bundler init

bundlerの設定ファイルを編集する

Gemfile
source "https://rubygems.org"
gem 'rails', '2.2.2'
gem 'cocoapods' , '0.39.0' 

※ここでrailsのバージョンを指定のものに変更しておく

gemに指定のバージョンをインストールする

ターミナル
sudo gem install activesupport -v 2.2.2

これ、順番としては真っ先にしておくべきことでした汗

参照記事↓
『RubyGems』
『rbenv rehashは何をやっているのか?』
『MacにHomeBrew,rbenv,bundlerをインストールする』

これでやっとアプリケーションを生成することができました。
finderから移動する場合はこちら↓
~/mitakalab-twitter/

→後編はこちら

6
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
10