TAG
#Rails
16 件の記事がこのタグでまとめられています。

リファクタリング 1 日分を、PR 5 個に分割した記録
200 行の Service クラスを 4 つに割り、最後に整える 5 PR 構成。各 PR は 80 行未満で独立にレビュー / マージできる。

Sidekiq cron で予約公開と revalidate を統合する
予約時刻に DB の status を published に切替、即 ISR を再生成する。Sidekiq 8 builtin scheduler を使った 1 連鎖の実装。

コンテンツ ID 管理を seed と admin で二重化しない
seed-fu には骨格データだけ、記事は admin / Bot API のみ。db_reset で消えない構造で運用する境界の引き方。

個人開発の docker-compose.yml をテンプレ化する
半年に 1 度作る Rails + Next.js + MySQL + Redis 構成を、テンプレ化してコピーで動く形に。本番 / 開発の差分は override で。

CarrierWave + MiniMagick で OGP / サムネを自動派生する
アップロード 1 枚から OGP / カード / サムネを自動生成する Uploader 設計。WebP 出力、CLS を抑える dimensions、CDN キャッシュ。

MySQL FULLTEXT ngram で日本語 AND 検索を実装する
ngram_token_size / IN BOOLEAN MODE / +演算子。Elasticsearch を使わずに日本語 AND 検索を MySQL だけで完結させる。

ISR + Webhook で「公開した瞬間に反映」を作る
Rails 側の publish イベントから Next.js の /api/revalidate に Webhook を投げる。即時反映と CDN 効率を両立する設計。

Rails 6.1 → 8.1 のメジャー移行で踏んだ 7 つの罠
load_defaults / Spring / show_exceptions / unprocessable_content。AetherEchoes バックエンドを 6.1 から 8.1 に上げた実録。

Rails 6.1 から 8.1 への移行メモ
Rails 6.1 の API-only 構成を 8.1 に引き上げる際に気をつけたポイントを、load_defaults や Spring 廃止など実例で整理します。

JSON-LD を Rails で型安全に組み立てる
schema.org の JSON-LD を埋めるとき、Hash を直書きすると型がない。dry-struct で構造を持たせる小さな工夫。