js.composer.error.post_length のテキストを更新できません

js.composer.error.post_length のテキストを更新しようとしています。これは、本番環境、ステージング環境、およびローカル環境の 2.9 および 3.1.0.beta2 で発生しています。

フロントエンドでは、値が設定されているにもかかわらず [missing {{min}} value] と表示されます。

エラーログには次のように表示されています。

NoMethodError (undefined method `scan' for {:one=>"Post must be at least %{count} character", :other=>"Post must be at least %{count} characters"}:Hash keys = text.scan(pattern) ^^
Message

NoMethodError (undefined method `scan' for {:one=>"Post must be at least %{count} character", :other=>"Post must be at least %{count} characters"}:Hash

    keys = text.scan(pattern)
               ^^^^^
lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:123:in `check_interpolation_keys'
app/models/translation_override.rb:64:in `upsert!'
app/controllers/admin/site_texts_controller.rb:88:in `update'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/missing_avatars.rb:22:in `call'
lib/middleware/turbo_dev.rb:31:in `call'

Backtrace

lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:123:in `check_interpolation_keys'
activesupport (7.0.4) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.4) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
activesupport (7.0.4) lib/active_support/callbacks.rb:687:in `block (2 levels) in default_terminator'
activesupport (7.0.4) lib/active_support/callbacks.rb:686:in `catch'
activesupport (7.0.4) lib/active_support/callbacks.rb:686:in `block in default_terminator'
activesupport (7.0.4) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.4) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.4) lib/active_support/callbacks.rb:595:in `each'

Env

HTTP HOSTS: 127.0.0.1:3000
「いいね!」 2

その文字列は2021年に変更されました。%{min}の代わりに%{count}を使用し、複数形(one, other)の文字列に変換されています。

カスタマイズされた文字列を修正するには、カスタマイズ → テキストに移動してください。

  • 「js.composer.error.post_length」を検索します。
  • 「編集」をクリックします。
  • 「変更を元に戻す」をクリックし、「はい」で質問を確認します。
  • 「検索に戻る」をクリックします。
  • 「js.composer.error.post_length」を検索します。
  • 2つの結果が表示されます。必要に応じて両方の文字列をカスタマイズしてください。
「いいね!」 4

これらのケースで英語にフォールバックし、何かをログに記録するエラー処理を構築できるでしょうか?

「いいね!」 3

なぜかこれが機能しませんでした。JSエラー「get_attributes」により確認ダイアログが開かず、ダイアログ要素がnullでした。

しかし、セーフモードをオンにして動作を確認したところ、すべて自動的に更新されました。セーフモードをオフにしてテーマに戻ると、すべて意図したとおりに動作していました。

なので、セーフモードが解決策だったのだと思います。上記のようなJSエラーはもう発生していません。(最初からセーフモードを試すべきでした、まったく。)

ご協力ありがとうございました!

「いいね!」 2