У меня странная проблема с именем пользователя. Мой форум использует RTL и уникальный язык для арабских ключевых слов.
Имя пользователя установлено на английском языке, но при проверке логов система показывает, что шаблон профиля пользователя не найден… Потому что в логах используются арабские ключевые слова.
Когда я проверяю имя пользователя, чтобы изменить его, оно отображается на английском, но в ошибке показывается арабское ключевое слово.
Есть какие-то предложения, как применить уникальные аватары в Discourse? Чтобы можно было использовать имена пользователей на арабском языке или с уникальным кодированием UTF-8?
Почему вы так считаете? Мне кажется, что метод create_user_profile не предназначен для ручного запуска; он выполняется системой Discourse автоматически после создания пользователя discourse/app/models/user.rb at main · discourse/discourse · GitHub. Именно поэтому вы получаете ошибку duplicate key value, так как пытаетесь создать профили пользователей, которые уже существуют.
Я попытался воспроизвести эту ошибку, создав учётную запись с именем пользователя دعم_المجتمع, а также протестировал это с учётной записью на английском языке. В обоих случаях язык интерфейса был установлен на арабский, и всё работало корректно.
Мне кажется, что эта проблема больше не связана с языком или шаблонами, а касается отсутствующих изображений бейджей, как вы и указали здесь Badge image missing issue
Вы правы; в любом случае это резервная копия, и я восстановил её, и она работает нормально. Проблема только с изображениями значков. Я попробовал выполнить команду
rake uploads:clean_up
rake posts:rebake
но проблема осталась.
[2] pry(main)> Discourse.system_user.create_user_profile
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
Caused by PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
[3] pry(main)>