Встраивание виджета комментариев на localhost вызывает FrozenError

У меня есть сайт на Rails, работающий на localhost:5000, и локальный сервер Discourse запущен на localhost:3000. Я хочу включить комментарии к статьям (в моем случае это ресурс Rails), поэтому в панели администратора Discourse настроил хост для встраивания:

Вот фрагмент скрипта, который я добавил в представление Rails:

<div id='discourse-comments'></div>

<script type="text/javascript">
  DiscourseEmbed = { discourseUrl: 'http://localhost:3000/',
                 discourseEmbedUrl: '<%= "http://localhost:5000/articles/#{@article.id}" %>'};

  (function() {
   var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
   d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body') 
  [0]).appendChild(d);
 })();

Я вижу сообщение «Загрузка обсуждения…», но ничего больше не происходит. Я попытался отследить проблему и думаю, что происходит следующее.

В Sidekiq задача Jobs::RetrieveTopic завершается ошибкой с сообщением Jobs::HandledExceptionWrapper: Wrapped FrozenError: can't modify frozen String.

Отследив проблему в коде, я дошел до строки 192 в методе TopicEmbed.absolutize_url:

prefix = "#{uri.scheme}://#{uri.host}"
prefix << ":#{uri.port}" if uri.port != 80 && uri.port != 443

Так как мой порт — 5000 (не 80 и не 443), код пытается конкатенировать порт к строке prefix, и возникает FrozenError. У задачи RetrieveTopic есть директива # frozen_string_literal: true. Я даже попробовал удалить её в эксперименте, но проблема сохраняется, поэтому я не уверен, все ли строковые литералы по умолчанию заморожены в Discourse.

Есть ли какие-то советы, как заставить это работать локально? Также, если строковые литералы действительно должны быть заморожены, является ли это ошибкой?

Discourse не поддерживает работу на нестандартных портах.