開発フロー
このドキュメントは、rs-textbook-guide をローカルで開発するときの基本的な流れをまとめたものです。
- Ruby と Bundler が利用できること
- SQLite3 が利用できること
- ドキュメントを編集する場合は pnpm が利用できること
※興味のある方はnixガイドに沿ってnixを使用すると簡単に設定ができます.
このリポジトリでは Rails アプリ本体と、docs/ 以下の Astro/Starlight ドキュメントを別々に起動します。
初回セットアップ
Section titled “初回セットアップ”Rails アプリの依存関係をインストールします。
bundle installデータベースを準備します。
bin/rails db:prepare初期データを流し込みます。
bin/rails db:seeddb/seeds.rb は db/seeds/ 以下の CSV を順に取り込みます。seed は既存レコードを更新する形で実行できるため、CSV を更新したあとも同じコマンドで反映できます。
ローカルのデータを作り直して seed を入れ直したい場合は、次のコマンドを使います。既存のローカルデータは削除されます。
bin/rails db:seed:replantドキュメントサイトを編集する場合は、docs/ で依存関係をインストールします。
cd docspnpm installRails アプリの起動
Section titled “Rails アプリの起動”Rails アプリはリポジトリルートで起動します。
./bin/dev./bin/dev は Procfile.dev を使い、Rails サーバーと Tailwind CSS の watch process を同時に起動します。既定のポートは 3000 です。
ポートを変更する場合は PORT を指定します。
PORT=3001 ./bin/dev開発中によく使うコマンド
Section titled “開発中によく使うコマンド”Rails のテストを実行します。
bin/rails testsystem test を実行します。
bin/rails test:systemRuboCop を実行します。
bundle exec rubocopBrakeman を実行します。
bundle exec brakemanドキュメントサイトをビルドします。
cd docspnpm build変更作業の流れ
Section titled “変更作業の流れ”-
最新の変更を取り込む。
-
bundle installとbin/rails db:prepareを実行してローカル環境を更新する。 -
./bin/devで Rails アプリを起動し、対象画面の現在の挙動を確認する。 -
小さな単位でコードを変更し、必要に応じてテストを追加する。
-
テーブル、カラム、制約、関連、初期データの形を変える場合は migration を作成する。
-
migration を実行する。
Terminal window bin/rails db:migrate -
初期データやマスターデータも変更する場合は、
db/seeds/以下の CSV とdb/seeds.rbを更新する。 -
seed を流し直して、変更後のデータがローカルで取り込めることを確認する。
Terminal window bin/rails db:seed -
ローカルデータを完全に作り直して確認したい場合は、必要に応じて seed を入れ直す。
Terminal window bin/rails db:seed:replant -
bin/rails test、関連する system test、静的解析を実行する。 -
UI やドキュメントを変更した場合は、ブラウザで表示を確認する。
トラブルシューティング
Section titled “トラブルシューティング”./bin/dev が gem の不足で終了した場合は、リポジトリルートで bundle install を実行します。
bundle installデータベース関連のエラーが出る場合は、migration と seed の状態を確認してから db:prepare を実行します。
bin/rails db:prepareCSS の変更が反映されない場合は、./bin/dev を再起動して Tailwind CSS の watch process を立ち上げ直します。