Railsの勉強中にひっかかったこと,それを解決するために参照したところ
後々のために,手順や参考にしたウェブページをメモしておく
随時更新する予定
Rubyのインストール
Rubyは,Homebrewを使ってrbenvを導入してインストールする.
普通にbrewでインストールするだけだが,一応次のウェブページをメモしておく.
$ brew install rbenv ruby-build
$ rbenv install -l
PATHに $HOME/.rbenv/bin:$PATH を追加したり,シェルのプロファイルに if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi を追加したりする.
$ rbenv install 2.4.1 $ rbenv global 2.4.1
この段階では2.4.1が最新版だったのでとりあえずそのままインストールする.これでrubyは使えるようになった.
Ruby on Railsのインストール
続いてRailsをインストールする.
先のウェブページにもインストール方法は書いてあるが,Bundlerの使い方・使う意味は次のWebページを参考にした.
ただし,Bundlerのインストールはそのままではうまくいかなかった.
Rubyのバージョンが不適切だというエラーメッセージがでてきたが,これはなぜかデフォルトでインストールされていたRubyがgemで使われていたのが原因らしい.
きちんとrbenvからインストールしたものを使うために,
$ rbenv exec gem install bundler
とする.バージョンに問題がなければrbenv execは除いてしまってかまわない(はず).
今は練習中なので,意味がきちんとわかるまではできるだけ復元しやすい状態にしておきたい.
そのため,Railsもローカルにインストールする.
次のWebページを参考にした.
qiita.com
プロジェクトのフォルダを作成後,そこへ移動して
$ rbenv exec bundle init
でGemfileが作成される.それを編集して(中にgem "rails"がコメントアウトされていると思うので,それを解除して)
$ bundle install --path vendor/bundle
でRailsをインストールする.
※なかなか時間がかかるが,自分のネット環境のせいかもしれない
※先に述べたように,rbenv execはrubyのバージョンの問題だった.面倒なので以降では省略する.
Railsの使い方
新規にプロジェクトを作るには,
$ bundle exec rails new xxx --skip-bundle
とする.xxxにプロジェクト名を入れる.これでxxxというフォルダが作成される.
今はvender/bundleのなかにrailsが入っており,これを使うためにbundle execを最初につける.
同時に--skip-bundleをつけることで,installが実行されるのを防ぐ.
これでxxxというRailsプロジェクトができたので,ローカルにインストールしたRailsは不要になった.
それを消しておいてもよい.
$ rm -f Gemfile $ rm -f Gemfile.lock $ rm -rf .bundle $ rm -rf vendor/bundle
続いて,
$ cd xxx $ bundle install --path vendor/bundle $ echo '/vendor/bundle' >> .gitignore
として,フォルダxxxの中に必要なGemをインストールする.
Gemfileは先のrails newコマンドで生成されているので,必要に応じて編集する.
最終行は,Gitで管理しなければ何の関係もないが,もし管理するならその対象からvendor/bundleを除くため.Gemfileが同期されれば問題なく環境も揃う.
ここまでがうまくいっていれば,
$ bundle exec rails server
でRailsが起動する.Listening on tcp:...以降の部分をブラウザで表示して,きちんと Yay! You’re on Rails! という画面が表示されれば問題なし.