Я хотел бы отредактировать текстовый шаблон напрямую в Rails, например, user_notifications.user_watching_first_post.text_body_template.
Не могли бы вы подсказать команды для консоли Rails, чтобы это сделать? Я не очень хорошо разбираюсь в Rails и не могу найти объект, который хранит эти данные.
Не вглядываясь внимательно в код, я на 99% уверен, что проблема на стороне Rails, а не UX, поэтому я не думаю, что изменение чего-либо на стороне Rails исправит ситуацию. Если у вас есть бюджет, я могу помочь разобраться, как реализовать то, что вы просите, но не обещаю, что это решит вашу проблему.
Вы можете найти те, которые вы изменили, используя что-то вроде этого:
Я не думаю, что проблема на стороне Rails, поскольку UI ошибочно отображает список разрешённых тегов (значит, этот список где-то неправильно захардкожен), но %{base_url} при этом парсится корректно (см. ветку). То есть с Rails я должен иметь возможность принудительно сохранить значение (обойдя любые проверки).
Но всё это, честно говоря, оффтоп: мой первоначальный вопрос был просто о подсказке, какой объект Rails нужно таргетировать. Если вы можете предложить только платную помощь, я подожду, надеясь, что кто-то другой захочет помочь бесплатно (я уже делал так в других ветках, также есть несколько PR на GitHub). Никаких обид
Редактирование: Вы отредактировали свой пост, пока я печатал. Я посмотрю, насколько далеко смогу продвинуться с тем, что вы предложили (пока не уверен, как адаптировать это для моего конкретного примера). Возможно, TranslationOverride будет достаточно в качестве подсказки.
Это было достаточно, и я также нашел ошибку (она находится в коде Ruby):
to=TranslationOverride.where(translation_key:"user_notifications.user_watching_category_or_tag.text_body_template").first
to.value="%{username} posted in \"[%{topic_title}](%{base_url}%{url})\"\n\n--"
to.save!
ActiveRecord::RecordInvalid: Validation failed: The following interpolation key is invalid: base_url
from /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/validations.rb:80:in `raise_validation_error'
validations.rb — это проблема… base_url корректен и успешно парсится (как я объяснял в связанной теме). Похоже, мне придется либо взломать validations.rb (фу!), либо напрямую редактировать SQL-базу данных (что я делал после обновления)… теперь мне нужно найти, где в базе данных PostgreSQL хранятся эти теги шаблонов
p.s. Для разработчиков это, конечно, очень простое и быстрое исправление (я мог бы отправить PR, но знаю лишь подмножество тегов, где %{base_url} отсутствует в списке допустимых).