※ 本記事はDMM WEBCAMP mentor Advent Calendar 2022 6日目のエントリーです。
網羅的に紹介する訳ではなく、あくまで僕個人が良いと思ったやり方やオプションについてのみ書いていくのでご了承ください。
インストール
$ gem install rails -v 7.0.3
Rails new
コマンドオプション
おすすめのオプションは以下の通りです。
rails _7.0.3_ new app_name -T -c tailwind -d postgresql
-
_7.0.3_
はバージョンの指定。デフォルトが7.0.3になっていれば付けなくても良い -
-T
はテストをスキップするオプション。テスティングライブラリはデフォルトだとMinitest
なのでRspec
を使う場合は付けた方が良い -
-c tailwind
はCSSライブラリとしてTailwindを指定している。Node.js不要でCSSを勝手に必要な分だけ取ってきてくれる機能が新しく搭載されたので、今回は一番効果を実感できそうなこれを選んだ。 -
-d postgresql
はデータベースにPostgreSQLを選択している。デフォルトのSQLiteはActiveStorageなんかを使うと、仕様上の問題ですぐエラーが起きるのでPostgreSQLかMySQL等がおすすめ。
このコマンドでとりあえず作成できるはずです。
作成したらやること
Rails7だからという話ではないですが、PostgreSQLでRailsを作成したのでDBの設定をします。
一気に書きます。
services:
db:
image: postgres:latest
restart: always
env_file:
- .env
ports:
- 5432:5432
volumes:
- ./data/development:/var/lib/postgresql/data
POSTGRES_USER=admin
POSTGRES_PASSWORD=V8GrknqpuIEG4GjDWtPj8g
TZ="Asia/Tokyo"
default: &default
adapter: postgresql
encoding: utf8
username: <%= ENV["POSTGRES_USER"] %>
password: <%= ENV["POSTGRES_PASSWORD"] %>
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: localhost
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
<<: *default
database: myapp_production
username: workbook_manager
password: <%= ENV["MYAPP_DATABASE_PASSWORD"] %>
RailsはDocker化せずにDBだけDocker化するやり方で書いているので注意してください。RailsもDocker化する方法については今回は書きません。そのうち使う機会があれば記事にもしようと思います。
ちなみにDBだけDocker化すると、Railsが高速で動くこと、DBの作り直しが容易になることの2つのメリットが共存して快適になります。MacのDockerはめちゃくちゃ遅いですからね(Finchが出たことで簡単に解決できるようになるかもしれません)。
後はRailsで.envファイルを読み込むために、Gemfileに
gem "dotenv-rails"
を追加して、以下の手順で実行すればサーバーが起動します。
bundle install # dotenv-railsをインストール
rails db:create # dbの作成
rails s
画像は載せませんが、起動画面が変わっていてカッコイイですね。
ちなみに起動コマンドをrails s
ではなく./bin/dev
にすると、TailwindのCSSを変更した時に、自動でCSSをビルドしてくれるようになるので、開発を進める際にはこっちを使うようにしましょう。
後はRails6以前と同じように開発できるはずです。