目的
Ruby on Rails 6,MySQL,RSpecを用いた環境を構築し,サーバーを起動してエラーなく最初のページが表示されるようにする.
開発環境
MacOS High Sierra 10.13.6
Ruby 2.7.0
Ruby on Rails 6.0.2.1
前提
- rbenv,Rubyのインストール
- MySQLのダウンロード
- rbenvへのbundleインストール(下記)
$ rbenv exec gem install bundler
$ rbenv rehash
手順
- プロジェクトを作成したいディレクトリに移動
- Railsインストール
- 上記のRailsを元にrails new
- Railsプロジェクトのセットアップ
1. プロジェクトを作成したいディレクトリに移動
$ mkdir projects
$ cd projects
2. Railsインストール
- Gemfile作成
- Gemfile書き換え(もちろんvimをはじめとしたエディタで編集してもおk)
- Railsインストール
$ bundle init
$ cat << EOS > Gemfile
source "http://rubygems.org"
gem "rails", "6.0.2.1"
EOS
$ bundle install
#指定したバージョンのRailsがインストールされていることを確認
$ bundle list
bundle install
に--path vendor/bundle
をつけるかどうか論議が発生しますが,基本的には付けなくて大丈夫とのこと.
またBundler2.1においては--path
オプションをつけると警告が出ます.それを回避するためには以下のようにしてbundlerの設定を変更する方がベターですが,この設定を行わなくても基本的にはおkです.
$ bundle config set --local path 'vendor/bundle'
ちなみに自分は以前pathを指定しておりその名残でvendor/bundleにbundle_pathが通っているため,以下ではbundle execを頭につけてrailsコマンドを実行しますが,そうでない方は単純にrailsコマンドを入力していただければいいかと.
3. 上記のRailsを元にrails new
# alias設定
$ alias be='bundle exec'
$ be rails new app_name -B -d mysql --skip-test
rails newの際にオプションをつけることでMySQLおよびRSpecのためのプロジェクトであることを示しています.
-B
は--skip-bundle
と同義であり,先のbundle installにおいてvendor/bundle
へのパス指定を行わなかった場合は必要ないと思われます.
4. Railsプロジェクトのセットアップ
残念ながらこれだとRails6で標準のwebpackerがインストールされていないため,サーバーを起動してもエラーが起こります.なのでこれを解決するために以下.
$ brew install yarn
$ be rails webpacker:install
yarnは一度インストールしておけば問題ないですが,webpackerは(be) rails new
してプロジェクトを新規作成するたびにする必要があります.
次にRSpecをgemに追加.もちろんプロジェクト内のGemfileに対して.
group :development, :test do
(省略)
gem 'rspec-rails'
end
毎度おなじみbundle install.
$ bundle install
bundle install
が作成したプロジェクト内のvendor/bundle
に対して行われた場合には,そのディレクトリをgitで扱わないようにするために以下を追加します.
$ echo '/vendor/bundle' >> .gitignore
そして最後にデータベースを生成し,サーバーを起動します.
$ be rails db:create
$ be rails s
これでエラーなくサーバーが起動されるはず.
※ ローカルにRailsをインストールした場合
2でローカルのvendor/bundleにbundle installした場合,Gemfileやvendor/bundleを消すのがいいかと.
新しいプロジェクト作成するたびに溜まっていってしまうので.
$ rm -f Gemfile
$ rm -f Gemfile.lock
$ rm -rf .bundle
$ rm -rf vendor/bundle
最後に
ようやく環境が整ったのでゴリゴリポートフォリオ作っていきたいと思います.
追記
Rails 6で環境整えたはいいものの,やはりまだ情報が出回ってないということで初心者のうちはRails5でポートフォリオ作ることにします.
現場の環境としてもまだまだ5系が多いというお話もお聞きしますし.