Привет! Этот вопрос адресован в первую очередь @angus, но если у кого-то есть предложения, я буду очень признателен!
Я работал над модификацией плагина @angus Topic Custom Field Plugin, и в моей локальной установке Discourse (версия 3.4.0.beta3-dev) он работал как надо. Однако после установки на наш развёрнутый экземпляр Discourse (тоже версия 3.4.0.beta3-dev) началось что-то странное. Когда пользователь создаёт новый пост и вводит данные в пользовательское поле, они не сохраняются и не отображаются при публикации поста. НО если пользователь редактирует пост и затем добавляет данные, они сохраняются и отображаются. Это наводит на мысль, что проблема где-то в коннекторах (предположительно в коннекторе composer), но я не могу понять почему, так как в локальной версии всё работает идеально. У меня есть регулярное выражение, которое фильтрует ввод — возможно, оно и является причиной? Буду очень благодарен за любые предложения. Спасибо!
Отладить это в абстрактном виде сложно, поэтому я дам вам несколько советов. Ключ к решению любой подобной проблемы — это фокус и метод исключения. Начните с выяснения того, почему вы можете воспроизвести проблему в продакшене, но не в среде разработки.
Совпадают ли плагины и темы в точности в продакшене и в среде разработки?
Используете ли вы одного и того же пользователя (администратор, модератор и т.д.)?
Выполняете ли вы действия в теме того же типа?
Выполняете ли вы действия с одинаковой скоростью?
Начните с того, чтобы сделать всё возможное для воспроизведения проблемы в среде разработки, если, конечно, проблема существует. Сосредоточьтесь на этом, пока не получите результаты или не выясните, почему в продакшене всё иначе.
Кроме того, одна из причин, по которой плагин «Topic Custom Fields» не предназначен для использования в продакшене, заключается в отсутствии тестов. Я знаю, что вам не понравится это слышать, но вам стоит написать несколько приемочных тестов для поведения редактора. Это даст вам однозначный ответ на вопрос, работает ли он в конкретных сценариях или нет.
Не уверен, поможет ли это, но, похоже, проблема может быть в том, что пользовательское поле не настроено правильно при создании сообщения.
Убедитесь, что вы присваиваете значению по умолчанию по умолчанию, когда открывается редактор.
Вы также можете попробовать временно отключить свой фильтр регулярных выражений, чтобы проверить, не вызывает ли он проблем с валидацией. Наконец, еще раз проверьте, что пользовательское поле действительно включается в данные, отправляемые при первом сохранении.