##はじめに
今年はWebにも少しづつ挑戦しようということで、参考文献の一番多そうなRailsをイジイジしています。取り敢えずローカルでの環境構築を終えてRails newして色々と試しているところです。
このあたりで一度頭の中を整理しつつテンプレ化しておきたいのと、間違いの指摘など頂けたら嬉しいなあと思って記事を書いています。
あとはRails newがうまくいかない人の参考になれば嬉しいです。
##環境
Windows10
ruby 2.6.6
Rails 6.0.3.1
psql (PostgreSQL) 12.3
環境構築に関しては書きませんので必要に応じてお調べください。
データベースはPostgreSQLに変更します。
それとgemについては基本的にローカルに入れてます。どちらでもいいみたいなんですが、なんとなくそうしています。
##アプリケーションのディレクトリ内にGemfileを作成する
ディレクトリは適当に作ってください。
C:\Users\user\sample_app> bundle init
##Gemfileに追加するgemを記述する
作成したGemfileをエディタで開き、以下を追加する。
gem 'rails'//コメントアウト(#)を外すだけ
gem 'pg'//PostgreSQLに変更する場合
gemのバージョンを指定したほうがいいのか、よく分からなかったので一先ず指定しないでおく。
##bundle installする
bundle install --path vendor/bundle
--path vendor/bundleはgemをローカルにインストールする場合に指定する。こうすることでvendor/bundle内にgemがインストールされるらしい。
--path vendor/bundleは最初の一回目だけ指定すれば、あとは省略できるみたい。
##rails newする
bundle exec rails new . -d postgresql --skip-turbolinks --skip-test
bundle execはRailsをローカルにインストールした場合につける。以降全てのrailsコマンドにつけます。
-d postgresql --skip-turbolinks --skip-testはオプションでこれら以外にも色々あるみたいなので必要に応じてお調べてください。
いまいち分からないものが多いので取り敢えずみんな書いているものだけ書く。
##SQL Shellでデータベースを作成する
create role APPLICATION_NAME with createdb login password 'PASSWORD';
select * from pg_user;
APPLICATION_NAMEにはユーザーネーム(アプリ名)、PASSWORDには任意のパスワードをいれます。
select * from pg_user;でロールが作成されているか確認します。
##database.ymlを更新する
configフォルダ内のdatabase.ymlに以下を記述します。
・
・
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: APPLICATION_NAME//追加(データベース作成時に決めたユーザーネーム)
password: PASSWORD//追加(データベース作成時に決めたパスワード)
host: localhost//追加
・
・
database.ymlを保存したらデータベースも更新します。
bundle exec rails db:migrate:reset
##サーバーを起動する
bundle exec rails s
ブラウザでhttp://localhost:3000/
にアクセスして画像が表示されれば成功。