はじめに
Rails初学者が書いています。
間違っているところや、こうした方がいいなどがあれば教えてください。
筆者の環境
MacOS : BigSur
Ruby : 2.7.2
Rails : 6.0.3.4
目次
- rails newまで
- dotenv gem追加
- .gitignore更新
- MySQLデータベース作成
rails newまで
新規Railsプロジェクトの作成手順まとめをかなり参考にさせてもらってます。
bundle install
まずはrailsプロジェクトを作成します。
いきなりrails new
するとシステムのgemにインストールされてしまい、
あまりよろしくない(なるべくクリーンにした方が良い)ので、
vendor/bundle
下にインストールするようにします。
$ mkdir sample_app
$ cd sample_app
$ bundle init
生成されたGemfileを以下のように編集します。
railsのバージョンを以下のように指定するとrails6.1未満で最新のものがインストールされます。
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem 'rails', '~> 6.0.0'
これで準備ができたので、下記のコマンドでRailsをインストールします。
$ bundle install --path vendor/bundle
この時に--path vendor/bundleを忘れずにつけてください。
このオプションを付けることによって、プロジェクトのvendor/bundle以下にgemが格納されます。(一度このコマンドを実行したら、次回以降はbundle install
でいけます)
rails new
$ bundle exec rails new . -B -d mysql
Railsのインストール実行時にGemfileを上書きしていいか聞かれますが、yesにして続行します。
コマンド | 効果 |
---|---|
bundle exec | railsのバイナリがないのでbundleから呼び出します。 |
rails new . | ドットを入れることで現在のフォルダ名でプロジェクトを作成します。 |
ーB | Railsプロジェクト作成時にbundle installを行わないようにする |
-d mysql | 指定したデータベースに変更する(railsのデフォルトのDBはsqlite3) |
dotenv-rails gemを追加
Gemfileに追加します。
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem 'dotenv-rails'
end
このGemは環境変数を追加するものです。
bundle install
$ bundle install
.gitignore更新
.gitignoreはgitに同期しないファイルを設定するものです。
私はgitignore.ioのファイルをそのまま使用します。
Rails用はこちら
これで.gitignoreを上書きします。
またデフォルトで、dotenv用のファイルも除外されています。
MySQLデータベースの作成
環境変数の設定
先ほどGemfileに追加したdotenvの設定をしていきます。
まずはルート下に.envファイルを作成します。
そして以下のように書きます。
DATABASE_PASSWORD='********'
config/database.yml
のファイルのパスワードのところに追記します。
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password: <%= ENV['DATABASE_PASSWORD'] %>
host: localhost
rails db:create
これで以下を実行すればDBを作れます。
$ rails db:create
あとはrails server
で起動できます。
参照
新規Railsプロジェクトの作成手順まとめ
[初期設定]初学者が最初に「.gitignore」を設定する方法
【Rails/MySQL】RailsにMySQLを導入する方法【プログラミング学習149日目】