📋 背景
PR #1726 で inactivated_at カラムを導入し、PR #1732 で年次フィルタリング機能を実装しました。現在、システム内に「inactive」と「inactivated」の2つの命名が混在しており、また is_active カラムと inactivated_at カラムが重複しています。
この Issue では、システム全体の一貫性を向上させるため、以下のリファクタリングを実施します。
✅ タスクリスト
Phase 1: データベース最適化
Phase 2: 命名の統一
📝 技術的詳細
1. is_active カラムの削除
現在の状態:
is_active (boolean) と inactivated_at (datetime) が重複
- 124個の非アクティブ道場でデータ整合性は確認済み
移行方法:
# 現在のロジック
dojo.is_active
# 新しいロジック
dojo.inactivated_at.nil?
2. CSS クラス名の変更
影響範囲:
/dojos ページのテーブル表示
/stats#prefectures セクションのテーブル
- その他の統計関連ページ
3. 命名規則
統一方針:
- inactive (形容詞): 状態を表す場合は使わない
- inactivated (過去分詞): 「非アクティブ化された」という動作の結果を表す
- 例:
inactivated_at (非アクティブ化された時刻)
🎯 受け入れ基準
- 機能の維持: 既存の全機能が正常に動作すること
- テスト: 全てのテストが成功すること
- パフォーマンス: クエリ性能が劣化しないこと
- 一貫性: システム全体で命名が統一されていること
🔗 関連情報
💡 実装のヒント
-
is_active の削除は慎重に
- まず全ての参照箇所を洗い出す
grep -r "is_active" app/ lib/ spec/ で検索
-
CSSクラス名の変更
grep -r "inactive-item" app/views/ app/assets/ で影響範囲を確認
-
テストを先に修正
📌 メモ
このリファクタリングは機能追加ではなく、技術的負債の解消です。ユーザーに見える変化はありませんが、コードの保守性と一貫性が大幅に向上します。
優先度: 中(機能には影響しないが、長期的な保守性のために重要)
想定作業時間: 2-3時間
推奨時期: 次回の大きな機能追加の前
is_activeカラムを削除しinactivated_atに統一 #1744📋 背景
PR #1726 で
inactivated_atカラムを導入し、PR #1732 で年次フィルタリング機能を実装しました。現在、システム内に「inactive」と「inactivated」の2つの命名が混在しており、またis_activeカラムとinactivated_atカラムが重複しています。この Issue では、システム全体の一貫性を向上させるため、以下のリファクタリングを実施します。
✅ タスクリスト
is_activeカラムを削除しinactivated_atに統一 #1744Phase 1: データベース最適化is_activeカラムの削除inactivated_atベースのロジックに置き換えPhase 2: 命名の統一CSSクラス名の変更:
inactive-item→inactivated-itemapp/assets/stylesheets/custom.scssの更新spec/requests/dojos_spec.rb)変数名・メソッド名の統一
📝 技術的詳細
1. is_active カラムの削除
現在の状態:
is_active(boolean) とinactivated_at(datetime) が重複移行方法:
2. CSS クラス名の変更
影響範囲:
/dojosページのテーブル表示/stats#prefecturesセクションのテーブル3. 命名規則
統一方針:
inactivated_at(非アクティブ化された時刻)🎯 受け入れ基準
🔗 関連情報
inactivated_attoDojomodel to replaceis_activeboolean column #1726:inactivated_atカラムの追加CSVfor specific year #1732: 年次フィルタリング機能の実装💡 実装のヒント
is_activeの削除は慎重にgrep -r "is_active" app/ lib/ spec/で検索CSSクラス名の変更
grep -r "inactive-item" app/views/ app/assets/で影響範囲を確認テストを先に修正
📌 メモ
このリファクタリングは機能追加ではなく、技術的負債の解消です。ユーザーに見える変化はありませんが、コードの保守性と一貫性が大幅に向上します。
優先度: 中(機能には影響しないが、長期的な保守性のために重要)
想定作業時間: 2-3時間
推奨時期: 次回の大きな機能追加の前