LoginSignup
15
3

More than 1 year has passed since last update.

Rails7をとりあえず起動するまで

Last updated at Posted at 2022-12-05

※ 本記事は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の設定をします。

一気に書きます。

compose.yml
services:
  db:
    image: postgres:latest
    restart: always
    env_file:
      - .env
    ports:
      - 5432:5432
    volumes:
      - ./data/development:/var/lib/postgresql/data
.env
POSTGRES_USER=admin
POSTGRES_PASSWORD=V8GrknqpuIEG4GjDWtPj8g
TZ="Asia/Tokyo"
database.yml
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に

Gemfile
gem "dotenv-rails"

を追加して、以下の手順で実行すればサーバーが起動します。

bundle install # dotenv-railsをインストール
rails db:create # dbの作成
rails s

画像は載せませんが、起動画面が変わっていてカッコイイですね。

ちなみに起動コマンドをrails sではなく./bin/devにすると、TailwindのCSSを変更した時に、自動でCSSをビルドしてくれるようになるので、開発を進める際にはこっちを使うようにしましょう。

後はRails6以前と同じように開発できるはずです。

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