قالب اسم المستخدم غير موجود

مرحباً،

لدي مشكلة غريبة مع اسم المستخدم، لوحتي تستخدم لغة RTL وكلمات مفتاحية فريدة باللغة العربية..

تم تعيين اسم المستخدم إلى كلمات إنجليزية، ولكن عندما أتحقق من السجلات، يظهر لي أن قالب ملف تعريف المستخدم لا يمكن العثور عليه… لأنه بكلمات مفتاحية عربية..

عندما أتحقق من اسم المستخدم لتغييره، يتم تعيينه إلى اللغة الإنجليزية، ولكن في الخطأ يظهر لي كلمة مفتاحية عربية..

إليك الخطأ الكامل.

رسالة

ActionView::Template::Error (No route matches {:action=>"show", :controller=>"users", :username=>"دعم_المجتمع"}, possible unmatched constraints: [:username]
Did you mean?  user_url
               users_url
               users_path
               user_badge_url)
app/views/about/index.html.erb:17
app/views/about/index.html.erb:15
app/controllers/about_controller.rb:16:in `block (2 levels) in index'
app/controllers/about_controller.rb:14:in `index'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:354:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'

Backtrace

actionpack (6.1.4.1) lib/action_dispatch/journey/formatter.rb:44:in `path'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:823:in `url_for'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:270:in `call'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:326:in `block in define_url_helper'
app/views/about/index.html.erb:17
activerecord (6.1.4.1) lib/active_record/relation/delegation.rb:88:in `each'
activerecord (6.1.4.1) lib/active_record/relation/delegation.rb:88:in `each'
app/views/about/index.html.erb:15
actionview (6.1.4.1) lib/action_view/base.rb:247:in `public_send'
actionview (6.1.4.1) lib/action_view/base.rb:247:in `_run'

بيئة التشغيل

HTTP HOSTS: forum.com

أعتقد أنه يجب علينا إصلاح هذا من داخل الحاوية حيث أنني جربت كل شيء في لوحة الإدارة ولكنه لا يعمل.

أي اقتراحات؟

أي اقتراحات حول كيفية تطبيق أحرف فريدة على “دسكورس”؟ حتى نتمكن من استخدام أسماء المستخدمين باللغة العربية، أو بأي ترميز فريد لـ UTF-8؟

ليس لدي خبرة في أسماء المستخدمين العربية، ولكن هل هذه حالة يمكن أن تساعد فيها أسماء المستخدمين Unicode؟

صحيح، تم فحصه بالفعل ولكن لا تزال المشكلة قائمة؛ ولكن الآن تغير الخطأ؛

Message

NoMethodError (undefined method `url' for nil:NilClass)
app/models/badge.rb:306:in `image_url'
(eval):10:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
app/controllers/application_controller.rb:510:in `render_json_dump'
app/controllers/users_controller.rb:97:in `block (2 levels) in show'
app/controllers/users_controller.rb:89:in `show'
app/controllers/users_controller.rb:103:in `show_card'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'

Backtrace

app/models/badge.rb:306:in `image_url'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:99:in `block in attribute'
(eval):10:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:448:in `block in merge_association'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `each'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `merge_association'

Env

HTTP HOSTS: site.com

يبدو أن المشكلة في قسم الشارات في منتداي؛ لكنني أحاول تشغيل هذا الأمر على الحاوية ولكنني لا أعرف كيف؛

Discourse.system_user.create_user_profile

سيقوم هذا الأمر بإصلاح مشكلة الشارات؛ ولكنني سأكون ممتنًا إذا قدم شخص ما كيفية تشغيل هذا الأمر؟ أو أين؟

[1] 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'

شكرًا.

لماذا تعتقد ذلك؟ لا أعتقد أن الدالة 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)> 

إعجاب واحد (1)