LoginSignup
2
6

More than 3 years have passed since last update.

新規Railsプロジェクト作成手順(Rails 6)

Last updated at Posted at 2020-02-15

目的

Ruby on Rails 6,MySQL,RSpecを用いた環境を構築し,サーバーを起動してエラーなく最初のページが表示されるようにする.

開発環境

MacOS High Sierra 10.13.6
Ruby 2.7.0
Ruby on Rails 6.0.2.1

前提

  1. rbenv,Rubyのインストール
  2. MySQLのダウンロード
  3. rbenvへのbundleインストール(下記)
$ rbenv exec gem install bundler
$ rbenv rehash

手順

  1. プロジェクトを作成したいディレクトリに移動
  2. Railsインストール
  3. 上記のRailsを元にrails new
  4. Railsプロジェクトのセットアップ

1. プロジェクトを作成したいディレクトリに移動

$ mkdir projects
$ cd projects

2. Railsインストール

  1. Gemfile作成
  2. Gemfile書き換え(もちろんvimをはじめとしたエディタで編集してもおk)
  3. 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系が多いというお話もお聞きしますし.

2
6
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
2
6