LoginSignup
3
2

事前準備 から Rails 6 セットアップ(MariaDBバージョン)

Last updated at Posted at 2019-09-28

1. 事前準備

1.1 MySQL互換の MariaDB をインストール

① インストール

$ brew install mariadb
$ brew services start mariadb
トラブルシューティング

以下のように MariaDB が起動しない場合

$ sudo mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

MariaDB 関連のデータをすべて削除して再インストール

$ brew services stop mariadb
$ brew uninstall mariadb
$ sudo rm -rf /usr/local/mysql
$ sudo rm -rf /Library/StartupItems/MYSQL
$ sudo rm -rf /Library/PreferencePanes/MySQL.prefPane
$ sudo rm -rf /Library/Receipts/mysql-.pkg
$ sudo rm -rf /usr/local/Cellar/mysql*
$ sudo rm -rf /usr/local/bin/mysql*
$ sudo rm -rf /usr/local/var/mysql*
$ sudo rm -rf /usr/local/etc/my.cnf
$ sudo rm -rf /usr/local/share/mysql*
$ sudo rm -rf /usr/local/opt/mysql*
$ brew install mariadb
$ brew services start mariadb

② ユーザー作成・権限割当

開発用なのでフル権限を与える

  • ユーザー名: myuser
  • パスワード: pass
$ sudo mysql -u root
MariaDB [(none)]> use mysql;

MariaDB [mysql]>  GRANT ALL PRIVILEGES ON *.* TO myuser@localhost IDENTIFIED BY 'pass' WITH GRANT OPTION;

MariaDB [mysql]> flush privileges;

MariaDB [mysql]> select Host,User from user;

MariaDB [mysql]> quit

1.2 yarn をインストール

Rails で webpacker を使用する際に yarn が必要ためインストールする。
※ node と yarn の関係などを知らない場合はネットで調べること

また、node のバージョン管理できるように、nodenv もインストールする。

$ brew install nodenv
$ echo 'eval "$(nodenv init -)"' >> ~/.zprofile
$ exec $SHELL -l
$ nodenv install --list
$ nodenv install 12.10.0
$ nodenv global 12.10.0
$ npm install -g yarn

2. グローバルにある Ruby を汚さずに Railsインストール

gem install rails を行うと ~/.rbenv/versions/2.5.1/lib/ruby/gems/2.6.4/gems の中に rails がインストールされます。 rails new をする時しか使用しないのにグローバルにインストールされてしまうのは無駄なので、インストールしない方法で進めます。

rbenv インストール

$ brew install rbenv
$ echo 'eval "$(rbenv init -)"' >> ~/.zprofile
$ exec $SHELL -l

rbenv で ruby をインストール

$ rbenv install 2.6.4
$ rbenv global 2.6.4

bundler をインストール

$ gem install bundler

プロジェクトディレクトリを作成

$ mkdir report_app
$ cd report_app

.ruby-version ファイルを配置

rbenv の機能で プロジェクトディレクトリに移動した際に自動で ruby のバージョンを切り替えてくれる設定ファイルを配置する。

.ruby-version
2.6.4

Gemfile 作成

$ bundle init

Gemfile を編集し、 rails のコメントアウトを外す

Gemfile
# gem "rails" ← 削除
gem "rails", "6.0.0" ← 追加

gem インストール

$ bundle install --path vendor/bundle

Rails プロジェクト作成

$ bundle exec rails new . -d mysql --skip-sprockets

--skip-sprockets は sprockets を使わず、webpacker を使用するため追加
実行すると、Gemfileを上書きしていいかと表示されるので Yes にする。

※ bundle install で gem mysql2 のエラーが表示された場合

  1. openssl をインストールし、パスを通す

    $ brew install openssl
    $ which openssl
    /usr/bin/openssl ← パスが通ってないから通す
    $ echo 'export PATH=/usr/local/opt/openssl/bin:$PATH' >> ~/.zprofile
    $ exec $SHELL -l
    $ which openssl
    /usr/local/opt/openssl/bin/openssl
    
  2. bundle config に設定を追加

    $ bundle config --local build.mysql2 --with-opt-dir="$(brew --prefix openssl)"
    
  3. 再度 bundle install

    $ bundle
    
    
```

3. Webpacker インストール

$ bin/rails webpacker:install

4. database.yml 設定

config/database.yml を以下の通り編集する

database.yml
  username: myuser
  password: pass

5. Rails 起動

$ bin/rails db:create
$ bin/rails s

6. 起動確認

ブラウザのアドレスバーに localhost:3000 と入力しEnter

その他設定

Webpacker の設定

  1. app/assets を削除する

  2. layout/application.html.erbstylesheet_link_tagstylesheet_pack_tag に差し替える

  3. 画面のちらつきを抑えるため config/webpacker.ymlextract_csstrue にする

  4. Webpacker を使うので Sprockets のディレクトリ app/assets を削除する

Turbolinks の無効化

他のJSライブラリと相性が悪いため turbolinks を無効化する

  1. Gemfiletarbolinks を削除
  2. app/javascript/packs/application.jsrequire("turbolinks").start() を削除
  3. app/views/layouts/application.html.hamldata-turbolinks-track を削除
  4. package.jsonturbolinks を削除

Slim 導入

  1. Gemfilegem 'slim-rails' を追加
  2. 既存の erb ファイルを slim に変換する
    https://qiita.com/mocchicc/items/abab4cdfac7b542742a6

RSpec 導入

  1. Gemfile に以下追加

    group :development do
      gem 'factory_bot_rails'
    end
    
    group :test do
      gem 'rspec-rails', '~> 4.0.0.beta2'
      gem 'rails-controller-testing'
    end
    
  2. rspecに必要なファイルを生成する

  3. $ bin/rails generate rspec:install
    
  4. bin/rspec コマンドを生成する

    $ bundle binstubs rspec-core
    
  5. rspec の設定ファイルを変更する

    rails_helper.rb に設定追加

    rails_helper.rb
    
    # FactoryBot.create を create で呼べるようにする
    config.include FactoryBot::Syntax::Methods
    
    # rspec3.3の aggregate_failures オプションをデフォルトとする
    config.define_derived_metadata do |meta|
      meta[:aggregate_failures] = true unless meta.key?(:aggregate_failures)
    end
    
    # focus を付与したテストのみ実行する
    config.filter_run_when_matching :focus
    
  6. Rspec を使うので Minitest のディレクトリ test を削除する

Rails Console を便利にする

  • Rails Console や デバッグを便利にするための gem を導入する

    Gemfile
    group :development, :test do
      gem 'awesome_print'
      gem 'pry-byebug'
      gem 'pry-rails'
    end
    
  • .pryrc ファイルを作成する

    • Railsプロジェクトのrootディレクトリに.pryrcファイルを配置しておけばデバッグ中に利用できるエイリアスが貼れる
    .pryrc
    if defined?(PryByebug)
      Pry.commands.alias_command 'c', 'continue'
      Pry.commands.alias_command 's', 'step'
      Pry.commands.alias_command 'n', 'next'
      Pry.commands.alias_command 'f', 'finish'
    end
    

一通りの基本設定は完了。それではアプリの実装に入りましょう。

3
2
1

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