操作
バグ #704
完了管理画面ログイン時に Devise の signed_in で Translation missing が表示される
ステータス:
却下
優先度:
通常
担当者:
-
開始日:
2026/08/21
期日:
進捗率:
0%
予定工数:
説明
管理画面にアクセスした際、フラッシュ領域に以下が表示された。
Translation missing. Options considered were: - ja.devise.sessions.administrator.signed_in - ja.devise.sessions.signed_in
経緯¶
同じ事象は #674「ログイン時の Devise フラッシュ(signed_in)の Translation missing を非表示化」で対応済み。
config/locales/devise.ja.yml に ja.devise.sessions.signed_in: ""(空文字)を定義し、
Devise の set_flash_message が message.present? のときだけ flash をセットする性質を利用して
フラッシュ自体を出さない、という方式。
現状の調査結果(task/703 時点 / develop 相当)¶
ローカル(Docker web コンテナ)で確認した限り、現行コードでは再現しなかった。
I18n.t("devise.sessions.signed_in")→""(I18n.exists?も true)- Devise 相当の呼び出し
I18n.t(:"administrator.signed_in", scope: [:devise, :sessions], default: [:signed_in])→""、present?はfalse - curl で管理者ログイン(
/administrators/sign_in)を実行し/admin・/admin/ordersを取得したが、 レスポンスにTranslation missingは含まれず、フラッシュも出ていない
やること¶
- 再現条件の特定(ブラウザでのログイン導線か / 特定の scope(administrator・supplier・user)か / 古いセッションクッキーに残ったフラッシュか / サーバー再起動前の古いプロセスか)
- 再現したら恒久対応。空文字による非表示は Devise の
present?依存で壊れやすいため、 scope 別キー(ja.devise.sessions.administrator.signed_in等)を明示的に定義する方式も検討する - 併せて supplier / user scope でも同様の欠落が出ないか確認する
参考¶
操作