チュートリアルページ
必要だったライブラリ
各種 Gem をインストールする前に
- readline-devel
- sqlite-devel
の2つが必要だった。
環境によって違うと思うが、エラーメッセージに大抵ちゃんと書いてあるので、それを見て足りないものを適宜入れれば OK。
rails new 時に Gem がグローバルインストールされないようにする
チュートリアルに沿って無邪気に rails new
すると、プロジェクトのデフォルト Gem (Puma とか) がグローバル領域にごっそりインストールされる。できればプロジェクトの vendor 配下に入れたい。
そこで、rails new
時に bundle install
を実行しないようにして、パスを指定しつつ手で bundle install
する。
gem install rails -v 5.1.4
rails new hello_app --skip-bundle
cd hello_app
bundle install --path vendor/bundle
あるいは、そもそも rails をプロジェクトディレクトリ内にインストールしてもよい。こうすれば、プロジェクトごとに異なるバージョンの rails を使うことができる。ただし rails
コマンドの前に bundle exec
が必要になる。
mkdir hello_app
cd hello_app
bundle init
echo "gem 'rails', '~> 5.1.4'" >> Gemfile
bundle install --path vendor/bundle
bundle exec rails new .
うっかり pg gem の追加を忘れて git push heroku すると若干面倒なことになる
Gemfile に pg Gem を使う旨を書かずに heroku にデプロイすると、 https://qiita.com/taumu/items/b09ec1afd7a3b9c0edbf と同じエラーが起きる。
上記リンク先では設定変更で対応しているが、一度 heroku 上でアプリを消して、Gemfile の修正をコミットしてからデプロイすると、database.yml を変えなくても正常に動作する。なぜ database.yml を変えなくても正常に動作するのかは、https://qiita.com/youmts/items/39c3f4f8106c0968d57e が詳しい。